当我将 cat 命令作为后台进程运行时,
$ cat &
然后尝试杀死它,
$ killall -v cat
它说它用信号 15 杀死了猫,但这只猫只是被停止了。运行后$ ps
,我看到它仍在运行。直到我打电话$ fg
,它才最终被终止。
好像和等待输入有关,因为在c++中模拟cat的时候,
string line;
while(getline(cin, line))
cout << line << endl;
同样的事情发生了,但是对于一个简单的while(true);
循环,该进程被成功杀死。
它似乎也是一个后台进程,因为当我$ cat
在另一个终端运行时$ killall -v cat
它也可以正常工作。
这里发生了什么?提前致谢。