質問編集履歴

2

sss

2022/11/30 11:53

投稿

akiyama_pga
akiyama_pga

スコア186

test CHANGED
File without changes
test CHANGED
@@ -46,3 +46,10 @@
46
46
  つまり、フォアにはなっていないということがわかりました...
47
47
 
48
48
  なのに、どうして端末はバックグラウンドであるはずのプロセスのsleep()状態となっているのか、まだここがわかりません。
49
+
50
+
51
+
52
+ --追記2
53
+ enterを押すことで、制御がbashに戻りました。
54
+ これは、あるプロセスをバックグラウンド実行(&)した際に、enter(return)を押すまで制御がシェルに戻らない仕様に関係する(同様のこと)だと思いました。
55
+ つまり、親が終了して子はバックに移行したが、その後何らかの標準出力が行われると、一度上と同じ動作になる。(つまり、enterを押すことですぐに制御が戻る....)

1

sfsadfdsf

2022/11/30 11:38

投稿

akiyama_pga
akiyama_pga

スコア186

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,24 @@
25
25
  これは、端末に書き込みが生じた場合には、何らかのシグナルが端末ドライバに発せられ、
26
26
  フォアグランドに移行されているのでしょうか?
27
27
  それとも、単にバックグラウンドから端末に出力されているだけでしょうか?(これだと子のsleep()の間プロンプトが使えない説明がつかない...)
28
+
29
+
30
+ --追記
31
+ TPGIDを見ますと、親終了前は、
32
+ ```
33
+ bash 21415 21415 21415 3691 21795 pts/2
34
+ /usr/bin/python3 loop.py 21795 21415 21795 21415 21795 pts/2
35
+ /usr/bin/python3 loop.py 21795 21415 21827 21795 21795 pts/2
36
+
37
+ ```
38
+
39
+ 親終了後(print()とかした場合も、)は、
40
+ ```
41
+ bash 21415 21415 21415 3691 21415 pts/2
42
+ /usr/bin/python3 loop.py 21795 21415 21827 2188 21415 pts/2
43
+ ```
44
+
45
+ のようにきっちりbashのプロセスグループにフォアが帰っています。
46
+ つまり、フォアにはなっていないということがわかりました...
47
+
48
+ なのに、どうして端末はバックグラウンドであるはずのプロセスのsleep()状態となっているのか、まだここがわかりません。