一、使用nohup命令
nohup是Linux系统中常用的后台运行命令,可避免因终端关闭或SSH连接断开导致程序终止。操作步骤如下:
- 执行命令:
nohup 程序路径 > 日志文件 2>&1 &
,例如:nohup python3 app.py > output.log 2>&1 &
。此命令会将标准输出和错误输出重定向到日志文件。 - 若需停止进程,使用
ps -aux | grep "程序名"
查询进程ID,再用kill -9 PID
强制终止。
注意:建议通过exit
正常退出终端,而非直接关闭SSH连接,以确保进程稳定运行。
二、配置Systemd服务
Systemd是Linux系统服务管理工具,适用于需要开机自启的场景。操作步骤如下:
- 创建服务文件:
sudo nano /etc/systemd/system/your_service.service
。 - 添加以下配置:
[Unit] Description=Your Service After=network.target [Service] User=ubuntu WorkingDirectory=/path/to/program ExecStart=/path/to/program/executable Restart=always [Install] WantedBy=multi-user.target
- 执行
sudo systemctl daemon-reload
加载配置,再通过systemctl start your_service
启动服务。
三、使用Screen工具
Screen可创建虚拟终端会话,支持断开后重新连接。操作流程如下:
- 安装Screen:
sudo apt-get install screen
。 - 创建会话:
screen -S session_name
,在会话中启动程序。 - 按Ctrl+A+D分离会话,使用
screen -r session_name
重新连接。
以上三种方法各有优劣:nohup适合临时任务,Systemd适用于长期服务管理,而Screen便于交互式调试。推荐生产环境优先使用Systemd服务,以确保异常退出后自动重启。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/617565.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。