我有一个嵌入式系统,我在其上telnet运行,然后在后台运行一个应用程序:
./app_name &
Run Code Online (Sandbox Code Playgroud)
现在如果我关闭我的终端并telnet从其他终端做,如果我检查然后我可以看到这个过程仍在运行.
为了检查这个,我写了一个小程序:
#include<stdio.h>
main()
{
while(1);
}
Run Code Online (Sandbox Code Playgroud)
我在后台运行我的本地linux pc程序,然后我关闭了终端.
现在,当我从其他终端检查这个过程时,我发现这个过程也被杀死了.
我的问题是:
据我所知,从书籍和bash手册中可以看出.当用户从bash注销时,如果用户未使用nohup或disown,则用户启动的所有后台作业将自动终止.但今天我测试了它:
终端中有两个选项卡,其中一个我创建了一个名为test的新用户并以test身份登录
su - test
Run Code Online (Sandbox Code Playgroud)开始写一个剧本.
cat test.sh
#!/bin/bash
sleep 60
printf "hello world!!"
exit 0
./test.sh &
Run Code Online (Sandbox Code Playgroud)之后我退出测试并关闭了标签
这是怎么回事?