稳定运行命令
使用nohup命令
nohup 命令用于在系统后台不挂断地运行命令,即使终端关闭或者网络连接断开,程序也能继续运行。nohup 的名称来自于 "no hang up"(不挂断)。
基本使用
- 基本语法:
bash
nohup command [arguments] &- 输出重定向:
- 默认情况下,输出会被重定向到 nohup.out 文件
- 可以自定义输出文件:
bash
nohup command > custom_output.log 2>&1 &- 常用示例:
bash
# 运行 Python 脚本
nohup python3 script.py &
# 运行 Node.js 应用
nohup node app.js > app.log 2>&1 &
# 运行 Java 程序
nohup java -jar app.jar &查看和管理后台进程
- 查看运行中的进程:
bash
ps -ef | grep command_name- 查看进程详细信息:
bash
ps aux | grep process_id- 终止进程:
bash
kill process_id
# 或强制终止
kill -9 process_id使用 screen 命令替代方案
如果需要更灵活的后台会话管理,可以使用 screen 命令:
- 创建新会话:
bash
screen -S session_name分离会话: 按下
Ctrl + A,然后按D重新连接会话:
bash
screen -r session_name最佳实践
- 始终重定向输出到日志文件
- 使用有意义的日志文件名,包含日期和应用名称
- 定期检查和清理日志文件
- 记录进程 ID 以便后续管理
示例完整命令:
bash
nohup command > /path/to/app_$(date +%Y%m%d).log 2>&1 & echo $! > app.pid