可将前台程序暂停并转后台执行:先按ctrl+z暂停程序,再用jobs查看作业编号,最后用bg %n恢复为后台运行。

可以直接把正在前台运行的程序暂停后转到后台继续执行,关键在于组合使用 Ctrl+Z、bg 和 jobs 这三个操作。
暂停前台程序(Ctrl+Z)
当程序正在前台运行并占用终端时,按下 Ctrl+Z 会向它发送 SIGTSTP 信号,使其暂停(stopped 状态),同时控制权交还给 shell。终端通常会显示类似:
[1]+ Stopped python my_script.py
此时程序并未退出,只是挂起,等待后续操作。
查看任务编号(jobs)
输入 jobs 命令,列出当前 shell 中所有作业(包括运行中和已暂停的):
-
jobs显示简略信息,如[1]+ Stopped python my_script.py -
jobs -l同时显示 PID 和状态,便于确认进程细节
方括号里的数字(如 [1])就是该任务的作业编号,后续命令要用到。
恢复为后台运行(bg)
用 bg %N(N 是 jobs 查到的编号)让暂停的任务在后台继续运行:
-
bg %1—— 恢复编号为 1 的任务 - 如果只有一个暂停任务,
bg不带参数也能生效
执行后终端会提示类似:[1]+ python my_script.py &,表示它已在后台运行,你可继续输入其他命令。
补充说明:输出重定向与长期存活
默认情况下,后台程序仍会把 stdout/stderr 打印到当前终端,可能干扰操作。建议搭配重定向:
-
python my_script.py > log.txt 2>&1 &(启动时直接后台 + 日志) - 对已挂起任务,先
bg %1,再用disown %1切断与终端的关联,防止关闭终端时被终止 - 更稳妥的长期运行方式是
nohup python my_script.py > log.txt 2>&1 &











