需求:让程序在后台跑后,不会占据终端,我们可以用终端做别的事情
使用nohup和&使程序在后台运行
命令格式:nohup Command [ Arg … ] [ & ]
比如:
nohup ./test > out.log 2>&1 &
解释:nohup就是不挂起的意思,将可执行文件test直接放在后台运行,并把终端输出存放在当前目录下的out.log文件中。当客户端关机后重新登陆服务器后,直接查看out.log即可
如何查看后台运行的程序
jobs -l
jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
ps -u
该命令查看属于当前用户的进程信息 ,若想查看别的信息,可以学习ps命令的其他用法。
如何中止后台运行的程序
使用命令kill -9 pid即可。
常用任务管理命令
# jobs //查看任务,返回任务编号n和进程号
# bg %n //将编号为n的任务转后台运行
# fg %n //将编号为n的任务转前台运行
# ctrl+z //挂起当前任务
# ctrl+c //结束当前任务
描述
nohup 命令运行由 Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序:要运行后台中的 nohup 命令,需要添加&到命令的尾部。
日志记录
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的nohup.out 文件中。如果当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
使用时注意
在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端的话,这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown,起不到关掉终端后调用程序继续后台运行的作用。
如需转载请注明: 转载自26点的博客
本文链接地址: linux 后台运行程序不挂起的方法
转载请注明:26点的博客 » linux 后台运行程序不挂起的方法