Skip to content

稳定运行命令

使用nohup命令

nohup 命令用于在系统后台不挂断地运行命令,即使终端关闭或者网络连接断开,程序也能继续运行。nohup 的名称来自于 "no hang up"(不挂断)。

基本使用

  1. 基本语法:
bash
nohup command [arguments] &
  1. 输出重定向:
  • 默认情况下,输出会被重定向到 nohup.out 文件
  • 可以自定义输出文件:
bash
nohup command > custom_output.log 2>&1 &
  1. 常用示例:
bash
# 运行 Python 脚本
nohup python3 script.py &

# 运行 Node.js 应用
nohup node app.js > app.log 2>&1 &

# 运行 Java 程序
nohup java -jar app.jar &

查看和管理后台进程

  1. 查看运行中的进程:
bash
ps -ef | grep command_name
  1. 查看进程详细信息:
bash
ps aux | grep process_id
  1. 终止进程:
bash
kill process_id
# 或强制终止
kill -9 process_id

使用 screen 命令替代方案

如果需要更灵活的后台会话管理,可以使用 screen 命令:

  1. 创建新会话:
bash
screen -S session_name
  1. 分离会话: 按下 Ctrl + A,然后按 D

  2. 重新连接会话:

bash
screen -r session_name

最佳实践

  1. 始终重定向输出到日志文件
  2. 使用有意义的日志文件名,包含日期和应用名称
  3. 定期检查和清理日志文件
  4. 记录进程 ID 以便后续管理

示例完整命令:

bash
nohup command > /path/to/app_$(date +%Y%m%d).log 2>&1 & echo $! > app.pid