侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

linux后台运行的多个方法

2023-12-08 星期五 / 0 评论 / 0 点赞 / 86 阅读 / 2182 字

一、后缀 &这种命令会至于后台运行,产生的输入还是会出现在前台,可以这样做:my.sh > /dev/null 2>&1 &这里解释下:一个命令后面加 > 表示将输出信息到文件,默认是将1类型(即正常

一、后缀 &

这种命令会至于后台运行,产生的输入还是会出现在前台,可以这样做:

my.sh > /dev/null 2>&1 &

这里解释下:一个命令后面加 > 表示将输出信息到文件,默认是将1类型(即正常输出),然后后面跟着 2>&1 表示将类型2(错误输出)也输出到和1类似一样的文件中去,/dev/null 表示空输出,不保存内容

这种做法会在中断ssh连接后中断,如果需要不中断采用第二种方式

二、nohub方法

这种方法可以在ssh连接中断后继续运行

nohub my.sh > /dev/null 2>&1 &

可以使用jobs -l查看后台进程,使用 fg 恢复

三、screen方法

这种方法更加强大,但需要安装screen,参考:screen使用

然后可以结合开机启动

参考:http://www.jianshu.com/p/3246be7c9dde

四、&和nohub区别

在Linux中可以使用以下2个命令让程序以job的方式在后端运行,以便让出终端来干其他事情。那么nohup 与& 有什么区别呢?
# nohup a.out &
# a.out &
当关闭终端时,shell默认会发送SIGHUP信号给与该终端关联的进程,从而导致其他进程跟随终端退出。nohup捕获了SIGHUP,并做了忽略处理,因此进程不会退出。
仅&通常没有捕获SIGHUP,因此当终端关闭时,jobs会退出。但是可以通过shell配置成退出时不发送SIGHUP,此时效果与nohup相同。
shopt | grep hupon 查看shell针对hup信号选项配置。如果为off,则表示终端退出时,shell不发送SIGHUP信号;为on,则表示会发送。

五、查看后台进程

  • jobs -l
  • 使用ps命令可以看到所有后台进程,然后使用killall 名称或者kill -9 后台进程号查找具体的后台应用:ps -aux | grep 名称

广告 广告

评论区