上一篇
场景引入:
凌晨3点,你终于写好了数据迁移脚本,满心欢喜地按下回车——结果终端突然卡死,SSH一断,几个小时的进度全没了…💥 这时候你就需要掌握Linux后台运行的生存技能了!
python long_task.py & # 结尾加&,命令立即进后台
nohup python long_task.py > output.log 2>&1 &
> output.log
重定向输出到文件 2>&1
把错误输出也合并到日志 如果你忘了用nohup:
python long_task.py & disown -h %1 # 把最近的后台任务移出"终端关联名单"
tmux new -s data_migration # 新建会话 Ctrl+b → d # 临时分离会话 tmux attach -t data_migration # 重新连接
screen
(老派但稳定) 命令 | 作用 | 常用参数 |
---|---|---|
jobs |
查看当前后台任务 | -l 显示PID |
bg %1 |
暂停的任务转后台 | 数字对应jobs编号 |
fg %2 |
后台任务拉回前台 | |
kill -9 PID |
强制终止进程 | 先用ps aux 查PID |
真实案例:
# 发现卡死的进程 ps aux | grep python # 温柔终止 kill -15 1234 # 顽固进程终极手段 kill -9 1234
日志爆炸💥
用logrotate
定期压缩日志:
nohup ./server >> /var/log/server.log 2>&1 & # 每周轮转日志(需配置/etc/logrotate.d/)
资源监控📈
top -u yourname # 实时查看自己进程 htop # 更友好的监控工具(需安装)
开机自启🔌
用systemd管理(以Python脚本为例):
sudo vim /etc/systemd/system/mytask.service
写入:
[Unit] Description=My Python Task [Service] ExecStart=/usr/bin/python3 /path/to/script.py Restart=always [Install] WantedBy=multi-user.target
sudo systemctl enable mytask sudo systemctl start mytask
tmux new -s "critical_task" nohup ./start.sh > $(date +%Y%m%d).log 2>&1 & disown # 安心关终端,还能随时回来查看
:根据需求选择方案——临时任务用&
,持久化用nohup
,复杂操作上tmux
,生产环境建议systemd
托管!
(本文方法实测有效,最后更新于2025年8月) 🐧
本文由 党平良 于2025-08-01发表在【云服务器提供商】,文中图片由(党平良)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/504052.html
发表评论