nohup
是 Linux 中一个常用的命令,用于在用户退出登录后仍保持进程运行。它的基本作用是忽略挂断信号(SIGHUP),使命令在后台持续执行,即使终端关闭也不会中断。以下是详细使用说明:
nohup <command> [args] &
&
:将命令放到后台运行。nohup.out
文件。启动后台进程并忽略挂断信号
nohup python script.py &
nohup.out
。自定义输出文件
nohup ./start_server.sh > server.log 2>&1 &
>
将标准输出重定向到 server.log
。2>&1
将标准错误也重定向到同一文件。完全忽略所有输出
nohup command > /dev/null 2>&1 &
进程管理
jobs -l
查看后台任务。kill
:
bash
kill -9 <PID> # 通过 ps aux | grep <command> 查找PID
日志轮转
nohup.out
文件过大,建议使用 logrotate
或自定义日志路径。与 disown
或 tmux/screen
的区别
nohup
仅忽略 SIGHUP 信号,而 disown
可将已运行的任务从 shell 的作业列表中移除。tmux
或 screen
会话管理。bash
nohup uvicorn app:app --host 0.0.0.0 --port 8000 > uvicorn.log 2>&1 &
bash
nohup wget https://example.com/large_file.zip &
nohup command &
+ 输出重定向。tmux
/screen
或系统服务(如 systemd
)。如果有进一步的使用场景或问题,可以具体说明!