被运行的程序的输出信息将不会显示到终端,下面良许教程网为大家分享一下Linux系统中nohup命令的具体使用方法。
可以将以忽略挂起信号的方式运行起来,使用权限
所有使用者
语法格式
nohup Command [ Arg … ] [ & ]
参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
案例演示:
使用nohup命令启动一个程序
如果你需要运行一个程序,即使对应的
被退出后依然保持运行,可以这样使用 nohup 运行这个程序:$ nohup command
当这个程序进行起来之后,这个程序对应的 log 输出及其错误日志都将被记录在 nohup.out 文件里,这个文件一般位于家目录或者当前目录。
重定向程序的输出
如果我不想把程序的输出保存在家目录或者当前目录,我想保存在我指定的路径,并且自定义文件名,要怎么操作?这时我们就可以使用重定向操作 > 。
比如,我现在有个
myScript.sh 我想把它的输出保存在家目录下的 output 目录下,文件名为 myOutput.txt ,可以这样运行:$ nohup ./myScript.sh > ~/output/myOutput.txt
使用nohup命令后台启动一个程序
如果想让程序在后台运行,可以加上 & 符号。但这样运行之后,程序就无影无踪了。想要让程序重新回到终端,可以使用 fg 命令。
这个命令的输出 log 将保存在 nohup.out 文件里,你可以使用 cat 或其它命令查看。第二行里 8699 这个数字代表这个命令对应的进程号,也就是 pid 。我们可以使用 ps 命令来找到这个进程。
使用nohup同时运行多个程序
如果你需要同时跑多个程序,没必要一个个运行,直接使用 && 符号即可。比如,你想同时跑 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
总结:
以上就是
为各位朋友分享的 相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多 等着你!