私はMacを使用しており、次の引用は次のとおりですman termios
。
制御端末がセッションに関連付けられると、その前景プロセスグループはセッションリーダーのプロセスグループに設定されます。
これを確認するには、ターミナルウィンドウを開き、sleep
フォアグラウンドでコマンドを実行し、別のターミナルウィンドウを開き、次のコマンドを実行しましたps
。
$ ps -o pid,pgid,tpgid,sess,stat,command,tty
PID PGID TPGID SESS STAT COMMAND TTY
44606 44606 45006 0 S -bash ttys000
45006 45006 45006 0 S+ sleep 3000 ttys000
フォアグラウンドプロセスグループを次のように表示します45006
。セッションリーダーを取得するためにgetsid
いくつかのCコードを使用して作成したgetpgid
後、次の情報を取得しました。
pid: 45006 pgid: 45006 sid: 44605
pid: 44605 pgid: 44605 sid: 44605
セッションリーダーは44605
ログインプロセスです。
$ ps -o pid,pgid,tpgid,sess,stat,command,tty -p 44605
PID PGID TPGID SESS STAT COMMAND TTY
44605 44605 45006 0 Ss login -pfl mz /b ttys000
明らかに、フォアグラウンドプロセスグループ45006
はセッションリーダープロセスグループとは異なります44605
。何が欠けていますか?ありがとうございます!