Linux服务器使用 nohup & 和 setsid命令开启/关闭后台运行进程的方法

Linux服务器使用 nohup & 和 setsid命令开启/关闭后台运行进程的方法方法 1 nohup amp 假如执行脚本的命令是 sh test sh 只需要在命令前面前面加 nohup 后面加 amp 在这个例子中 就是 nohup sh test sh amp

欢迎大家来到IT世界,在知识的湖畔探索吧!

让命令提交后不受本地关闭终端窗口,以及网络断开连接的干扰,一般使用后台程序执行命令 setsid nohup &,我们来看看如何使用这些命令开启和关闭后台运行脚本。

开启后台执行脚本

方法 1:nohup &

假如执行脚本的命令是 sh test.sh,只需要在命令前面前面加 nohup,后面加 &,在这个例子中,就是:

nohup sh test.sh &

&:是指在后台运行,但是当用户退出(挂起)的时候,命令会自动跟着结束。

nohup:是指不挂断运行,可以使命令永久的执行下去,和用户终端没有关系。

将 nohup 和 & 结合使用,就可以实现使命令永久地在后台执行了。

方法 2:setsid

假如执行脚本的命令是 sh test.sh ,只需要在命令前面前面加 setsid,在这个例子中,就是:

setsid sh test.sh

setsid 命令子进程从父进程继承了:SessionID、进程组 ID 和打开的终端。子进程如果要脱离这些,代码中可通过调用 setsid 来实现。

关闭后台执行脚本

查看后台进程

先使用 ps -aux|grep
<指定关键字>
| grep -v grep
命令找到脚本后台运行的进程。刚才我们在后台运行了脚本 test.sh ,那么查找该脚本进程的写法就是:

ps -aux|grep test.sh| grep -v grep

关闭后台进程

假如查询到的进程 ID 是 1219 ,那么使用 kill 或者 kill -9 命令将其终止。

  1. # 终止进程
  2. kill 1219
  3. # 强制终止进程
  4. kill -9 1219

无法终止进程

用 kill 杀掉后还是存在此进程,原因有两种,此进程是僵尸进程/此进程是“核心态”进程,可以尝试找到引用它的父进程 PPID,将父进程终止;或者尝试重启服务器

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/85981.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信