Linux 的 nohup 命令的用法
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用
nohup
命令。
命令简介
$ nohup Command [ Arg … ] [ & ]
该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup
就是不挂起的意思(no hang up
)。
nohup
运行由 Command
和相关的 Arg
参数指定的命令,忽略所有挂断(SIGHUP
)信号。要运行后台中的 nohup
命令,添加 &
( 表示 and
的符号)到命令的尾部。
如果使用 nohup
命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为 nohup.out
的文件中,除非另外指定了输出文件。
使用举例
$ nohup java -jar adapter-minisite.jar /tomcat-1 /tomcat-2 > logs.txt 2>&1 &
在上面的例子中,运行命令 java -jar adapter-minisite.jar
输入参数 /tomcat-1
和 /tomcat-2
,输出被重定向到 logs.txt
文件中。
退出任务
如果运行的任务在当前 shell
终端,可以通过 jobs
命令查询相关信息,并且杀掉进程。
# 查看当前 shell 终端的后台运行任务进程信息
$ jobs
[1]+ Running nohup java -jar adapter-minisite.jar /tomcat-1 /tomcat-2 > logs.txt 2>&1 &
# 杀掉任务号
$ kill %1
# 或着找到 pid
$ jobs -l
[1]+ 11076 Running nohup java -jar adapter-minisite.jar /tomcat-1 /tomcat-2 > logs.txt 2>&1 &
$ kill 11076
# 或着
$ fg %n # 置为前端运行
Ctrl + c # 退出
如果非当前 shell
终端,可以通过 ps auxf | grep 'adapter-minisite'
获取 pid
然后 kill pid
。