服务器程序运行的相关操作
文章目录
- 前言
- nohup和&命令
- 实操
- 附录
前言
近期在学校服务器运行程序,但是每当到了晚上11点就会断网,无法登录终端,服务器上运行的程序也随之结束,有没有什么方法,能够在关闭终端后,服务器上的程序仍然运行呢?当再次打开终端后,又如何查看程序的运行进度呢?当想手动结束该程序时,又该如何操作呢?
nohup和&命令
通过查阅网上的资料,发现了一种行之有效的方法。那就是转变程序运行的命令,借助nohup和&命令的联用来解决这个问题。
首先我们来看看nohup和&命令各自的作用
nohup
- 英文全称: no hang up
- 不挂断的运行,可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行。.
- 关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out 文件。
- 没有后台运行的意思,但有一些后台执行的形式在里边
&
- 在后台运行,但当用户会话退出(挂起)的时候,命令自动也跟着退出
基于nohup和&各自的缺点,如果单独进行使用,并不方便,因此我们将它们结合在一起使用,这样便可以很好的解决我们的上述问题。
命令联用: nohup Command &
- 命令永久的在后台执行,直到结束,终端可以接受输入(标准输入)
实操
下面以一个例子来说明这两个命令的联合使用方法
要在服务器上永久运行test.py程序,直到结束,我们的方法是,使用如下命令
nohup python -u test.py > log.file 2>&1 &
注释:
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结合就代表标准输出了,就变成错误重定向到标准输出。
最后一个&, 是让该命令在后台执行。
当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。
监控进程
ps -ef | grep 进程号
杀死进程
kill -9 进程号1 进程号2 进程号3 ...
当你想实时查看程序的运行进度时,可以执行命令
tail -f log.file
下面给出几点补充
ctrl+c
前台进程的终止ctrl + z
可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
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正常退出当前账户,这样才能保证命令一直在后台运行。
附录
参考资料
【1】nohup命令: Linux后台运行程序并实时查看输出
【2】linux后台运行、挂起、恢复进程相关命令
【3】nohup后台执行hive任务
服务器程序运行的相关操作相关推荐
- 流场可视化工程dlb-dynamicdr部署日志:阶段五:实验室服务器程序运行
流场可视化工程dlb-dynamicdr部署日志:阶段五:实验室服务器程序运行 2022-03-03 当前环境: 运行(阶段一:Init部分) 2022-03-04 阶段一(总) MPICH重新部署 ...
- 网络共享 指定的服务器无法运行请求的操作,局域网共享访问故障及解决方案...
版权声明:可以任意转载,但请务必以超链接形式标明文章原始出处. 免责声明:操作需谨慎,本站不对使用此文后造成的任何后果负责. 本文链接:本文来自 盆盆罐罐 >> 局域网共享访问故障及解决方 ...
- 服务器证书CA的相关操作
证书颁发模块 一. 实验环境 1. 证书服务器的ip地址 2. Web服务器的ip地址 3. 客户端的ip地址 4. 客户端访问Web网站 二. Web服务器申请证书 a) 首先要信任CA 1. 选择 ...
- oftc注册服务器占用,golang服务器程序运行过程中崩溃,报错:fatal error: runtime: out of memory...
用golang编写的游戏服务器程序,在接受来自客户端的链接请求时有一定概率崩溃,崩溃时的打印如下: fatal error: runtime: out of memory runtime stack: ...
- 小程序运行时相关信息
(1)运行环境:小程序的运行环境 微信小程序运行在三端:iOS(iPhone/iPad).Android 和 用于调试的开发者工具. 三端的脚本执行环境以及用于渲染非原生组件的环境是各不相同的: 在 ...
- 服务器程序运行在哪里,win10程序在哪里打开_网站服务器运行维护
桌面下面的任务栏变成竖向怎么解决?_网站服务器运行维护 桌面下面的任务栏变成竖向的解决方法:1.右键任务栏上的空白处,在弹出的选项中选择"属性".2.在弹出的窗口中找到" ...
- 服务器后台运行jupyter相关指令
后台运行程序 参考链接:https://blog.csdn.net/donaldsy/article/details/96350061 后台运行 nohup命令:语法nohup COMMAND [AR ...
- matlab colorbar 程序,Matlab colorbar相关操作
转载自『http://hi.baidu.com/imheaventian/item/8d3b8ecf2c209408c610b210』 1) matlab中画多张图如何使用同一范围的colorbar ...
- 云服务器软件运行出错,云服务器程序运行中出现木马
攻击补充 01:13:30.597 [http-nio-9070-exec-28] WARN o.a.s.m.AbstractRememberMeManager - [onRememberedPrin ...
最新文章
- C语言中字符型在计算机中的存储
- React+Redux+中间件
- android源码分析-Zygote
- oracle散列,在Python中散列一个整数,以匹配Oracle的标准_散列
- mysql+xml+注释,springboot整合mybatis完整示例, mapper注解方式和xml配置文件方式实现(我们要优雅地编程)...
- Linux CentOS 7下 Apache Tomcat 7 安装与配置
- Sockets programming in Python
- css --- [读书笔记] 盒模型(边框、内外边距)
- NodeJS开发环境配置
- html设置按钮样式变为椭圆,css border-radius圆形变为椭圆形,位置:绝对
- 从html导出带样式的excel,Jquery导出带样式的Excel
- redis 远程主机强迫关闭了一个现有的连接_记一次Redis+Getshell经验分享
- 关于含光 800,这里有你想要的一切答案!
- 从旧版升级到MySql4.1上的中文乱码问题解决方案
- Spark性能优化指南——高级篇【2】
- [Selenium+Java] Selenium Framework: Keyword Driven Hybrid
- Intel CPU的型号漫谈
- 基于阿里云ECS,Ubuntu系统搭建离线下载服务器
- apache带宽配置
- 英语十大词性之二 - 动词