相关疑难解决方法(0)

如果我们关闭它已经启动的终端,linux会杀死后台进程吗?

我有一个嵌入式系统,我在其上telnet运行,然后在后台运行一个应用程序:

./app_name &
Run Code Online (Sandbox Code Playgroud)

现在如果我关闭我的终端并telnet从其他终端做,如果我检查然后我可以看到这个过程仍在运行.

为了检查这个,我写了一个小程序:

#include<stdio.h>
main()
{
    while(1);
}
Run Code Online (Sandbox Code Playgroud)

我在后台运行我的本地linux pc程序,然后我关闭了终端.

现在,当我从其他终端检查这个过程时,我发现这个过程也被杀死了.

我的问题是:

  • 为什么相同类型的进程的未定义行为?
  • 它依赖于哪个?
  • 它是否依赖于Linux的版本?

linux shell telnet job-control

20
推荐指数
4
解决办法
1万
查看次数

注销时bash如何处理作业?

据我所知,从书籍和bash手册中可以看出.当用户从bash注销时,如果用户未使用nohup或disown,则用户启动的所有后台作业将自动终止.但今天我测试了它:

  1. 登录到我的gnome桌面并访问gnome-terminal.
  2. 终端中有两个选项卡,其中一个我创建了一个名为test的新用户并以test身份登录

    su - test
    
    Run Code Online (Sandbox Code Playgroud)
  3. 开始写一个剧本.

    cat test.sh
    #!/bin/bash
    sleep 60
    printf "hello world!!"
    exit 0
    
    
    ./test.sh &
    
    Run Code Online (Sandbox Code Playgroud)
  4. 之后我退出测试并关闭了标签

  5. 在下一个选项卡中,我以root身份执行了ps aux,发现该作业仍在运行.

这是怎么回事?

linux bash nohup

17
推荐指数
2
解决办法
7972
查看次数

标签 统计

linux ×2

bash ×1

job-control ×1

nohup ×1

shell ×1

telnet ×1