Linux服务器后台运行程序教程(含Python与.sh脚本实战)

 更新时间:2026年06月02日 10:38:56   作者:William.csj  
在Linux系统中,将脚本文件(.sh)以后台方式运行是一种常见的操作需求,尤其在需要长时间执行任务或不希望占用终端的情况下,这篇文章主要介绍了Linux服务器后台运行程序(含Python与.sh脚本)的相关资料,需要的朋友可以参考下

前言

在运行 .sh 脚本之前的重要前提:如果直接运行 .sh 脚本时遇到“权限拒绝 (Permission denied)”的报错,需要先给脚本加上可执行权限。指令是:chmod +x 你的脚本名.sh

方法一:使用 nohup(适合跑耗时较长的单次任务,一键提交不需要看实时界面)

核心逻辑:在运行命令前加 nohup,在末尾加 > 日志名.log 2>&1 &。无论是跑 Python 还是 Shell 脚本,这套模板完全通用。

  1. 启动后台任务

Python 脚本例子:

nohup python train_reamot.py --model qwen2.5-vl --batch_size 4 > train_output.log 2>&1 &

.sh 脚本例子(两种写法皆可):

写法 A(推荐):nohup bash run_experiments.sh > exp_output.log 2>&1 &
写法 B(需提前赋予权限):nohup ./run_experiments.sh > exp_output.log 2>&1 &
  1. 查看运行进度
    指令:tail -f [日志文件名].log
    例子:tail -f train_output.log
    说明:这会实时刷新并显示代码里的输出。想退出查看画面,按 Ctrl + C 即可(请放心,这绝对不会停掉后台正在跑的程序)。
  2. 终止后台程序
    指令:先查进程号 ps -ef | grep 你的脚本名,然后强杀 kill -9 [进程号]。
    例子:输入 ps -ef | grep run_experiments 查到进程号是 12345 后,输入 kill -9 12345 即可强制停止任务。

方法二:使用 tmux(适合多任务并行、需要时常切回来看进度条或交互的开发环境)

核心逻辑:在服务器里建一个“虚拟房间”,在房间里就像平时一样跑代码。退出房间时代码依然在跑,下次进房间接着看。

  1. 创建并进入一个新环境
    指令:tmux new -s [给任务起个名字]
    例子:tmux new -s track_eval
    说明:输入后,屏幕底部会出现一条绿色状态栏,说明你已经进入了安全环境。
  2. 在里面正常跑代码(Python 和 .sh 均可)
    在这个环境里,你不需要加 nohup,平常怎么跑代码现在就怎么跑。

Python 脚本例子:

python evaluate.py --dataset DRSet

.sh 脚本例子:
bash run_experiments.sh 或者直接输入 ./run_experiments.sh

  1. 把程序挂到后台(最关键的一步)
    指令:按住键盘上的 Ctrl 和 b 键,松开手指,然后再单独按字母 d 键。
    说明:此时你会退回到最初的普通终端界面。即使你现在断开 SSH 连接、关机下班,刚才运行的 .py 或 .sh 脚本依然在服务器后台稳稳执行。
  2. 恢复之前的界面
    指令:tmux a -t [任务名字]
    例子:tmux a -t track_eval
    说明:第二天重新连上服务器后输入该指令,就能瞬间回到昨天的界面,进度条和打印出来的报错信息都在。当这个任务彻底结束,你不再需要这个环境时,在界面里输入 exit 即可彻底销毁它。

总结建议:

  • 如果你已经写好了最终的训练脚本,只需要它默默跑出结果,用 nohup 最简单清爽。
  • 如果是日常需要反复调试框架、同时跑多个不同的实验对比,用 tmux 建立几个不同的窗口来管理会大幅提升效率。

到此这篇关于Python与.sh脚本后台运行Linux服务器的文章就介绍到这了,更多相关Python与.sh后台运行Linux服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3使用tesserocr识别字母数字验证码的实现

    Python3使用tesserocr识别字母数字验证码的实现

    这篇文章主要介绍了Python3使用tesserocr识别字母数字验证码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python神经网络Keras搭建RFBnet目标检测平台

    python神经网络Keras搭建RFBnet目标检测平台

    这篇文章主要为大家介绍了python神经网络Keras搭建RFBnet目标检测平台,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 用不到50行的Python代码构建最小的区块链

    用不到50行的Python代码构建最小的区块链

    这篇文章主要为大家详细介绍了用不到50行的Python代码构建最小的区块链,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Python调整数组形状如何实现

    Python调整数组形状如何实现

    这篇文章主要介绍了Python调整数组形状如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • Python利用paramiko实现基本的SSH客户端操作

    Python利用paramiko实现基本的SSH客户端操作

    ​​paramiko​​ 是一个用于进行 SSH2 协议编程的 Python 库,它支持加密和认证功能,本文将通过几个实例来介绍如何使用 ​​paramiko​​ 进行基本的 SSH 客户端操作,感兴趣的可以了解下
    2025-06-06
  • 用python实现前向分词最大匹配算法的示例代码

    用python实现前向分词最大匹配算法的示例代码

    这篇文章主要介绍了用python实现前向分词最大匹配算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python-typing: 类型标注与支持 Any类型详解

    Python-typing: 类型标注与支持 Any类型详解

    这篇文章主要介绍了Python-typing: 类型标注与支持 Any类型详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • 基于Python+PyQt+MVVM方式开发桌面应用

    基于Python+PyQt+MVVM方式开发桌面应用

    本文通过一个简单的待办事项小工具,介绍了使用Python和PyQt6实现MVVM架构的方法,文章详细解释了什么是MVVM,并展示了如何将项目分为Model、View和ViewModel三层,从而使代码更加清晰、可维护,文中还提供了项目结构建议、代码示例和安装方法,需要的朋友可以参考下
    2026-05-05
  • Python结合Tkinter模拟答案之书实现抽签小工具

    Python结合Tkinter模拟答案之书实现抽签小工具

    这篇文章主要为大家详细介绍了Python如何结合Tkinter模拟答案之书实现一个抽签小工具,文中的示例代码讲解详细,需要的小伙伴可以了解下
    2025-09-09
  • Python利用海龟画图turtle库做一个篮球比赛计时画面示例代码

    Python利用海龟画图turtle库做一个篮球比赛计时画面示例代码

    这篇文章主要介绍了Python利用海龟画图turtle库做一个篮球比赛计时画面的相关资料,文中通过代码介绍的非常详细,代码实现了一个基本的计时器功能,需要的朋友可以参考下
    2024-12-12

最新评论