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

编辑于:2022年01月04日

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

开启后台执行脚本

方法 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 命令将其终止。

# 终止进程
kill 1219

# 强制终止进程
kill -9 1219

无法终止进程

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

相关推荐

Linux命令:Screen 让长时间作业任务后台运行不中断

Linux命令:Screen 让长时间作业任务后台运行不中断

执行 Screen 命令,可以避免远程连接服务器运行系统备份、scp传输、编译安装等长时间才能完成的任务时,因网络突然掉线或者关掉窗口导致任务中断。 安装Screen 动图演示 安装状态 which screen 执行如上命令,如果没 ...

Chrome/Edge/QQ浏览器安装 JS 脚本

Chrome/Edge/QQ浏览器安装 JS 脚本

对Chrome浏览器而言,除了丰富的扩展程序(插件)可以提升使用体验,一些好用的JS脚本也能让浏览器实现额外的超级功能:免VIP看会员视频、解除B站港澳台区域限制等等。

手机浏览器Yandex安装JS脚本教程

手机浏览器Yandex安装JS脚本教程

安卓手机浏览器Yandex可以通过油猴插件安装JS脚本,从而实现高速下载百度云文件、破解B站限定港澳台番剧观看和免费观看腾讯、爱奇艺VIP视频等功能。

Chrome浏览器为油猴插件安装JS脚本教程

Chrome浏览器为油猴插件安装JS脚本教程

在浏览器中,油猴插件就像一把枪,而脚本就是枪的子弹,只有枪没有子弹无法发挥油猴插件的威力。虫子来讲讲,如何给油猴插件安装脚本,用以实现免费看 VIP 视频、获取百度网盘直连等功能。 1.准备工作 首先给你的电 ...

暂无评论