文章目录

  • 前言
  • 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任务

服务器程序运行的相关操作相关推荐

  1. 流场可视化工程dlb-dynamicdr部署日志:阶段五:实验室服务器程序运行

    流场可视化工程dlb-dynamicdr部署日志:阶段五:实验室服务器程序运行 2022-03-03 当前环境: 运行(阶段一:Init部分) 2022-03-04 阶段一(总) MPICH重新部署 ...

  2. 网络共享 指定的服务器无法运行请求的操作,局域网共享访问故障及解决方案...

    版权声明:可以任意转载,但请务必以超链接形式标明文章原始出处. 免责声明:操作需谨慎,本站不对使用此文后造成的任何后果负责. 本文链接:本文来自 盆盆罐罐 >> 局域网共享访问故障及解决方 ...

  3. 服务器证书CA的相关操作

    证书颁发模块 一. 实验环境 1. 证书服务器的ip地址 2. Web服务器的ip地址 3. 客户端的ip地址 4. 客户端访问Web网站 二. Web服务器申请证书 a) 首先要信任CA 1. 选择 ...

  4. oftc注册服务器占用,golang服务器程序运行过程中崩溃,报错:fatal error: runtime: out of memory...

    用golang编写的游戏服务器程序,在接受来自客户端的链接请求时有一定概率崩溃,崩溃时的打印如下: fatal error: runtime: out of memory runtime stack: ...

  5. 小程序运行时相关信息

    (1)运行环境:小程序的运行环境 微信小程序运行在三端:iOS(iPhone/iPad).Android 和 用于调试的开发者工具. 三端的脚本执行环境以及用于渲染非原生组件的环境是各不相同的: 在 ...

  6. 服务器程序运行在哪里,win10程序在哪里打开_网站服务器运行维护

    桌面下面的任务栏变成竖向怎么解决?_网站服务器运行维护 桌面下面的任务栏变成竖向的解决方法:1.右键任务栏上的空白处,在弹出的选项中选择"属性".2.在弹出的窗口中找到" ...

  7. 服务器后台运行jupyter相关指令

    后台运行程序 参考链接:https://blog.csdn.net/donaldsy/article/details/96350061 后台运行 nohup命令:语法nohup COMMAND [AR ...

  8. matlab colorbar 程序,Matlab colorbar相关操作

    转载自『http://hi.baidu.com/imheaventian/item/8d3b8ecf2c209408c610b210』 1) matlab中画多张图如何使用同一范围的colorbar ...

  9. 云服务器软件运行出错,云服务器程序运行中出现木马

    攻击补充 01:13:30.597 [http-nio-9070-exec-28] WARN o.a.s.m.AbstractRememberMeManager - [onRememberedPrin ...

最新文章

  1. C语言中字符型在计算机中的存储
  2. React+Redux+中间件
  3. android源码分析-Zygote
  4. oracle散列,在Python中散列一个整数,以匹配Oracle的标准_散列
  5. mysql+xml+注释,springboot整合mybatis完整示例, mapper注解方式和xml配置文件方式实现(我们要优雅地编程)...
  6. Linux CentOS 7下 Apache Tomcat 7 安装与配置
  7. Sockets programming in Python
  8. css --- [读书笔记] 盒模型(边框、内外边距)
  9. NodeJS开发环境配置
  10. html设置按钮样式变为椭圆,css border-radius圆形变为椭圆形,位置:绝对
  11. 从html导出带样式的excel,Jquery导出带样式的Excel
  12. redis 远程主机强迫关闭了一个现有的连接_记一次Redis+Getshell经验分享
  13. 关于含光 800,这里有你想要的一切答案!
  14. 从旧版升级到MySql4.1上的中文乱码问题解决方案
  15. Spark性能优化指南——高级篇【2】
  16. [Selenium+Java] Selenium Framework: Keyword Driven Hybrid
  17. Intel CPU的型号漫谈
  18. 基于阿里云ECS,Ubuntu系统搭建离线下载服务器
  19. apache带宽配置
  20. 英语十大词性之二 - 动词

热门文章

  1. 数加使用自定义调度资源进行数据同步
  2. wireshark 分析理解DHCP流程
  3. 设计模式|LSP(里氏替换)原则
  4. 如何提高SEO网站域权重
  5. 论PMI-ACP敏捷项目管理认证考前培训必要性
  6. Nginx代理websocket
  7. Android之lunch命令
  8. echarts教程(三): 配置多条折线图
  9. Pfam:蛋白质家族数据库简介
  10. 关于VIPS算法的实现