nohup
(no hang-up)命令用于在后台运行程序,使其在用户退出登录后继续运行。以下是nohup
命令的一些常用参数及其用法:
基本命令格式:
nohup command [arguments] &
command
:要运行的命令。[arguments]
:传递给命令的参数。&
:将命令放入后台运行。输出重定向:
默认情况下,nohup
会将标准输出和标准错误输出重定向到当前目录下的nohup.out
文件中。你可以通过指定文件来改变输出位置:
nohup command [arguments] > output.log 2>&1 &
> output.log
:将标准输出重定向到output.log
文件。2>&1
:将标准错误输出重定向到标准输出,即与标准输出合并。-c
:不使用用户的shell环境,直接执行命令。
nohup -c command [arguments] &
-m
:指定信号处理方式,例如-m SIGINT
表示在接收到SIGINT
信号(通常是Ctrl+C)时终止进程。
nohup -m SIGINT command [arguments] &
-p
:保留进程的PID文件。
nohup -p /path/to/pidfile command [arguments] &
-v
:显示命令的执行过程。
nohup -v command [arguments] &
假设你想在后台运行一个名为myapp
的应用程序,并将输出重定向到一个特定的日志文件myapp.log
,可以使用以下命令:
nohup ./myapp > myapp.log 2>&1 &
如果你希望在接收到SIGINT
信号时终止进程,可以这样写:
nohup -m SIGINT ./myapp > myapp.log 2>&1 &
nohup
命令时,确保命令路径正确,或者使用绝对路径。nohup.out
文件可能会变得很大,建议定期清理或监控该文件的大小。setsid
命令来确保进程完全独立于终端会话运行。通过合理使用nohup
命令及其参数,可以有效地在后台运行程序,并确保其在用户退出登录后继续运行。