nohup命令用于在用户退出登录后继续运行进程,它将进程与终端分离,避免进程被终端的挂断信号“SIGHUP”打断而退出。
nohup命令的基本语法如下:
nohup command &
其中,command是要后台执行的命令。&表示将命令放入后台执行。
nohup命令的常用选项如下:
-n:不用将标准输入重定向到/dev/null;
-p:指定进程号文件;
-help或--help:显示帮助信息。
nohup命令的使用示例:
1. 后台执行命令:
nohup command &
2. 将命令输出保存到指定文件:
nohup command > output.log &
3. 将命令输出同时追加到指定文件:
nohup command >> output.log &
4. 查看指定进程的pid:
nohup -p pid
5. 不将标准输入重定向到/dev/null:
nohup -n command &
6. 显示帮助信息:
nohup -help
7. 暂停或恢复nohup命令的运行:
# 暂停nohup命令的运行
kill -STOP [pid]
# 恢复nohup命令的运行
kill -CONT [pid]
注意事项:
1.在使用nohup命令时,请确保输出日志文件可写。
2.在使用nohup命令时,请注意使用&将命令放入后台执行。
3.确保在后台执行的进程不会无限循环或出现死锁等情况。
4.nohup命令不会使命令在新的进程中运行,因此如果命令需要用户输入,则将无法在后台运行。
5.如果命令或脚本需要从终端读取输入,则可以将输入重定向为文件,并将其传递给命令或脚本。
6.尽管nohup命令将忽略挂断信号(SIGHUP),但仍可能会受到其他信号的影响,例如SIGKILL,即使使用nohup命令也无法防止被强制终止。
7.nohup命令只能用于在当前终端窗口运行的命令。如果要在远程终端窗口运行命令,需要使用ssh命令进行远程登录。