質問編集履歴
2
sss
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
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()状態となっているのか、まだここがわかりません。
|