过Linux的人应该都知道,如果想让一个程序在后台运行,只要在执行命令的末尾加上一个&符号就可以了。但是这种方式不是很保险,有些程序当你登出终端后它就会停止。那么如何让一个程序真正永远在后台执行呢。答案就是使用 nohub 命令.
成都创新互联公司专业为企业提供武汉网站建设、武汉做网站、武汉网站设计、武汉网站制作等企业网站建设、网页设计与制作、武汉企业网站模板建站服务,10多年武汉做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
nohup 命令的基本语法如下:
$ nohup command arguments
或
$ nohup options
如果你想要得到更多关于 nohup 的用法介绍,可以查看它的帮助页面:
$ nohup --help
如果你需要运行一个程序,即使对应的 Shell 被退出后依然保持运行,可以这样使用 nohup 运行这个程序:
$ nohup command
当这个程序进行起来之后,这个程序对应的 log 输出及其错误日志都将被记录在 nohup.out 文件里,这个文件一般位于家目录或者当前目录。
如果我不想把程序的输出保存在家目录或者当前目录,我想保存在我指定的路径,并且自定义文件名,要怎么操作?这时我们就可以使用重定向操作 > 。
比如,我现在有个脚本 myScript.sh 我想把它的输出保存在家目录下的 output 目录下,文件名为 myOutput.txt ,可以这样运行:
$ nohup ./myScript.sh > ~/output/myOutput.txt
如果想让程序在后台运行,可以加上 & 符号。但这样运行之后,程序就无影无踪了。想要让程序重新回到终端,可以使用 fg 命令。
这个命令的输出 log 将保存在 nohup.out 文件里,你可以使用 cat 或其它命令查看。第二行里 8699 这个数字代表这个命令对应的进程号,也就是 pid 。我们可以使用 ps 命令来找到这个进程。
如果你需要同时跑多个程序,没必要一个个运行,直接使用 && 符号即可。比如,你想同时跑 mkdir ,ping,ls 三个命令,可以这样运行:
$ nohup bash -c 'mkdir files && ping -c 1 baidu.com && ls'> output.txt
终止跑在后台的进程
上面有提到,nohup 命令结合 & 符号可以使进程在后台运行,即使关闭了终端依然不受影响。这时,如果想要终止这个进程,要怎么操作呢?
最简单的当属 kill 命令,相信大家用过很多次了。
$kill -9 PID
那要如何找到进程对应的 pid 呢?我们可以使用 ps 命令。
$ ps aux | grep myScript.sh
或者你使用 pgrep 命令也行。 接下来,再使用 kill 命令就可以终止该进程了。
$kill -9 14942
新闻标题:详解Linuxnohub命令
文章来源:http://www.shufengxianlan.com/qtweb/news9/118309.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联