服务器程序运行的相关操作
1|0前言
近期在学校服务器运行程序,但是每当到了晚上11点就会断网,无法登录终端,服务器上运行的程序也随之结束,有没有什么方法,能够在关闭终端后,服务器上的程序仍然运行呢?当再次打开终端后,又如何查看程序的运行进度呢?当想手动结束该程序时,又该如何操作呢?
2|0nohup和&命令
通过查阅网上的资料,发现了一种行之有效的方法。那就是转变程序运行的命令,借助nohup和&命令的联用来解决这个问题。
首先我们来看看nohup和&命令各自的作用
nohup
- 英文全称: no hang up
- 不挂断的运行,可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行。.
- 关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out 文件。
- 没有后台运行的意思,但有一些后台执行的形式在里边
&
- 在后台运行,但当用户会话退出(挂起)的时候,命令自动也跟着退出
基于nohup和&各自的缺点,如果单独进行使用,并不方便,因此我们将它们结合在一起使用,这样便可以很好的解决我们的上述问题。
命令联用: nohup Command &
- 命令永久的在后台执行,直到结束,终端可以接受输入(标准输入)
3|0实操
下面以一个例子来说明这两个命令的联合使用方法
要在服务器上永久运行test.py程序,直到结束,我们的方法是,使用如下命令
注释:
-
nohup (no hang up),不挂起。
-
python test.py 是原本运行程序的命令。
-
-u (unbuffered,不缓存)这个参数加在python的后面,可以实时查看输出,而不用等把一段日志文件写入log.file后才能查看。
>log.file 注意有>号,是将command的输出重定向到log.file文件,即输出内容不打印到屏幕上,而是输出到log.file文件中。(文件名可自定义,如output.log等) -
2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了log.file文件,即将标准出错也输出到log.file文件中。2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出。
-
最后一个&, 是让该命令在后台执行。
当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。
监控进程
杀死进程
当你想实时查看程序的运行进度时,可以执行命令
下面给出几点补充
-
ctrl+c
前台进程的终止 -
jobs
查看当前有多少在后台运行的命令
jobs -l 选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。 -
fg 命令编号
将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。 -
bg 命令编号
将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。 -
ps
显示当前系统的进程状态
ps x选项可显示所有程序,不以终端机来区分 -
kill
法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
为避免账户非正常退出或者结束的时候程序终止,在使用nohup命令后台运行命令之后,建议使用exit正常退出当前账户,这样才能保证命令一直在后台运行。
4|0附录
__EOF__

本文链接:https://www.cnblogs.com/Red-Heart-Match/p/15939912.html
关于博主:Xiamen, Fujian
版权声明:转载请注明来源哟~ QAQ
声援博主:I want you !!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 全程不用写代码,我用AI程序员写了一个飞机大战
2020-02-26 Tomcat安装及Eclipse配置教程