linux 后台运行程序不挂起的方法

Server 林涛 249℃ 0评论

需求:让程序在后台跑后,不会占据终端,我们可以用终端做别的事情

使用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 后台运行程序不挂起的方法

喜欢 (0)
发表我的评论
取消评论

表情