linux 程序組 會話期

2021-06-19 04:32:30 字數 1090 閱讀 9800

在linux/unix中,有這樣幾個概念:

根據posix.1定義:

因此當網路斷開或終端視窗關閉後,控制程序收到sighup訊號退出,會導致該會話期內其他程序退出。

我們來看乙個例子。開啟兩個ssh終端視窗,在其中乙個執行top命令。

[root@tivf09 root]# top

在另乙個終端視窗,找到top的程序id為5180,其父程序id為5128,即登入shell。

[root@tivf09 root]# ps -ef|grep top

root 5180 5128 0 01:03 pts/0 00:00:02 top

root 5857 3672 0 01:12 pts/2 00:00:00 grep top

使用pstree命令可以更清楚地看到這個關係:

[root@tivf09 root]# pstree -h 5180|grep top

|-sshd-+-sshd---bash---top

使用ps-xj命令可以看到,登入shell(pid 5128)和top在同乙個會話期,shell為會話期首程序,所在程序組pgid為5128,top所在程序組pgid為5180,為前台程序組。

[root@tivf09 root]# ps -xj|grep 5128

5126 5128 5128 5128 pts/0 5180 s 0 0:00 -bash

5128 5180 5180 5128 pts/0 5180 s 0 0:50 top

3672 18095 18094 3672 pts/2 18094 s 0 0:00 grep 5128

關閉第乙個ssh視窗,在另乙個視窗中可以看到top也被殺掉了。

[root@tivf09 root]# ps -ef|grep 5128

root 18699 3672 0 04:35 pts/2 00:00:00 grep 5128

作用 和會話期 程序組 程序組和會話

程序組 程序組是指乙個或多個程序的集合。通常與乙個作業相關聯,可以接收來自同一終端的訊號。每個程序組有乙個唯一的程序組id,它類似於程序id,是乙個正整數 其實就是組長程序的程序id 可以通過函式獲得 include pid t getpgrp void 程序組都有乙個組長,組長程序的標識是其程序組...

UNIX程序組,會話期,作業控制

在unix系統中,作業控制允許在乙個終端上啟動多個作業 程序組 控制哪乙個作業可以訪問該終端,以及哪些作業在後台執行。為了支援作業控制,引入了程序組,會話期,控制終端等概念,還需要核心以一定的訊號支援。一 程序組。每乙個程序除了有乙個程序pid之外,還屬於乙個程序組,用程序組id表示。返回當前程序組...

Linux 程序組 會話 守護程序

程序組 乙個或多個程序的集合 程序組id 正整數 兩個函式 getpgid 0 getpgrp eg 顯示子程序與父程序的程序組id 1 include 2 include 3 include 45 int main else if pid 0 1718 sleep 3 19 printf the ...