后台运行脚本

需求:很多时候我们会在 linux 服务器上执行 python 脚本,然而脚本程序执行的时间可能比较长,当耗时过长的情况下,我们使用 ssh 远程登录到 linux 服务器上容易造成超时自动断开连接,当用户注销时,终端会收到 hup(hangup)信号从而关闭其所有子进程,会导致正在执行中的 python 脚本被中断,为了解决这一问题,我们使用 nohup 命令并结合 & 解决此问题。

命令格式:nohup command &

nohup 指:在忽略挂起信号的情况下运行给定的命令,以便在注销后命令可以在后台继续运行;nohup 并不支持后台运行,它是忽略内部的挂断信号,不挂断运行

& 指:后台运行,即将进程放到后台运行,这里的后台,其实指的是当前登陆终端的后台,如果在命令尚未执行完毕时就退出登陆,则此命令的执行会被中断。

那么,如果将 nohup 与 & 结合在一起使用,这样就可以不挂断的永久在后台执行。

命令示例:(将 test.py 输出的内容写入到 test.out 文件中)nohup python -u test.py 参数1 参数2 参数3 > test.out 2>&1 &

其中 “2>&1” 表示:将错误和输出都传到 test.out 文件中,默认状态只把输出输出到文件中

如果去掉末尾的 ‘&’ ,则表示此命令会在终端前台工作,所有输出的内容会写入到 test.out 文件。

实时查看 test.py 输出的内容:tail -f -n 20 test.out

启动脚本

例如我要同时运行多个python脚本,可以这么创建一个start.sh

#!/bin/bash
cd ./middle_back_end/backend/
nohup python -u backend_today.py >/home/hanhan/InternShipProject/out/today.out 2>&1 &
nohup python -u backend_yestoday.py >/home/hanhan/InternShipProject/out/yestoday.out 2>&1 &
nohup python -u backend_getnums.py >/home/hanhan/InternShipProject/out/getnums.out 2>&1 &
cd /home/hanhan/InternShipProject/front_middle_end/backend/
nohup python -u backend.py >/home/hanhan/InternShipProject/out/flask.out 2>&1 &

然后在sh文件目录下,通过命令sh start.sh运行脚本。然后我们看看是否运行成功:
运行命令ps -ef | grep backend(因为我这边脚本名字中都有backend这个字眼),可以看到确实都在运行

[root@VM-90-225-centos /home/hanhan/InternShipProject]# ps -ef | grep backend
root     13618     1  8 14:26 pts/7    00:00:35 python -u backend_today.py
root     13619     1  8 14:26 pts/7    00:00:35 python -u backend_yestoday.py
root     13620     1  0 14:26 pts/7    00:00:00 python -u backend_getnums.py
root     13621     1  0 14:26 pts/7    00:00:00 python -u backend.py
root     13846 13621  0 14:26 pts/7    00:00:02 /usr/bin/python /var/www/html/InternShipProject/front_middle_end/backend/backend.py
root     24194 23153  0 14:33 pts/3    00:00:00 grep --color=auto backend

关闭脚本

将刚刚创建的几个进程一次性kill掉,创建stop.sh

#!/bin/sh
ps -ef |grep backend | grep -v grep | awk '{print $2}' | xargs kill -9

第一段前面两节不陌生,是查找某个进程,第三节的意思是过滤grep(一般调用前两节命令后显示的有两段数据,过滤的就是第二段无用的数据),第四节的意思是找出进程号
$2:表示第二个字段
print $2 : 打印第二个字段,第五节的意思是杀死找出的进程号.

然后在sh文件目录下,通过命令sh stop.sh运行脚本。
最后再通过ps -ef |grep backend命令观察,发现kill成功。

参考

Linux 自动关闭某个进程脚本
nohup运行python脚本_linux 下 Python 脚本后台执行(nohup command &)
Linux中执行shell脚本的4种方法总结

linux 启动/关闭多个py脚本相关推荐

  1. 启动/关闭Spring boot服务脚本

    启动Spring boot服务脚本 #!/bin/bash cd /test java -jar test.jar &> ./test.log & echo "成功&q ...

  2. linux启动jar服务命苦_shell脚本启动jar包

    1.基于maven的springboot项目打包 2.到项目路径下对应target目录找到生成的jar 将之上传到linux系统上 3.对应shell脚本 ------脚本开始------ #!/bi ...

  3. linux启动关闭脚本,Linux中启动/停止/重启/状态的startup脚本

    今天看到一个脚本,可以完成脚本的启动/停止/重启/状态,和/etc/init.d中的服务一样.但是/etc/init.d里面的服务要设置开机启动,可以使用service来管理.如果不设置开机启动且方便 ...

  4. linux启动关闭脚本,Linux下自动启动关闭Oracle脚本

    自动启动oracle9i 9i装在oracle文件系统下,在/oracle下建立文件startdb, 文件内容 echo   "begin   to   start   oracle&quo ...

  5. linux平台关闭某个进程的脚本

    在开发LINUX平台下的程序时,经常需要为我们的开发的程序写启动程序和关闭程序的脚本. 启动脚本比较好做,关闭程序脚本如下: 具体思路是通过ps命令找到程序的进程ID号,然后通过Kill命令将程序Ki ...

  6. linux停止network服务命令是,Linux启动关闭重启网络服务的两种方式

    注意:1.这三种方式主要用于以redhat为基础的发行版 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验 第一种方式:ln -s 建立启动软连接 在Linux中有7种运行级别(可在/et ...

  7. linux启动nifi指令,Nifi 组件脚本开发 - ExecuteScript 使用指南 (二)

    Nifi 组件脚本开发 - ExecuteScript 使用指南 (二) 浅谈 Java 的反射原理 摘要: Java 的编译过程 谈及反射, 不得不先了解一下, java 的整个编译过程, 整体的 ...

  8. Linux 启动 停止 重启 jar Shell脚本

    #!/bin/bash #替换成自己的java环境变了 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-3.el8_3.x ...

  9. Linux 启动 jar 包的 sh 脚本

    shell脚本实现jar项目的启动.停止.重启,脚本如下: #!/bin/sh export jar项目=XXX.jar export jar端口=9022case "$1" in ...

最新文章

  1. linux下free源码,linux命令free源码解读:Procps free.c
  2. 校园网站建设策划方案离不开三方面
  3. Linux 内核安全模块学习总结
  4. μC/OS Ⅱ之任务就绪表的操作_2012.5.31
  5. 设置硬盘休眠linux,linux笔记本设置休眠
  6. Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)
  7. 怎么看电脑系统是win几_做设计,用win系统 还是苹果MAC电脑更好 (PS举例)
  8. 配置cocos2d-js 开发环境 通过CMD 创建工程
  9. 如何清空_回收站删除的文件怎么恢复?回收站清空如何恢复?
  10. 一个极其微小的优化想法
  11. PDF转换为其他格式的方法
  12. 50.Linux/Unix 系统编程手册(下) -- 虚拟内存操作
  13. apex创建快捷方式_盖伦下载的Origin平台、Apex游戏手动添加快捷方式
  14. 【Scratch】进阶篇-《Scratch游戏开发》FlappyTurtle
  15. 辐射能量、辐照度、辐射亮度
  16. Zigbee应用之搭建开发环境
  17. qq账号绑定服务器地址,网站接入 QQ 登录整合社交账号登录 - 文章教程
  18. html速成项目,HTML速成教材.doc
  19. 工控安全的一些个人建议
  20. yolo模型转换:pytorch -> onnx -> caffe

热门文章

  1. 【APICloud系列|27】 UICalendar模块(日历)的实现
  2. Bash脚本教程之mktemp 命令,trap 命令
  3. 【Java必备资料包】
  4. js对HTML字符转义与反转义
  5. mockJs文档(一)
  6. 【SQL Server 学习系列】-- sql 随机生成中文名字
  7. python学习 day6 (3月7日)
  8. LeetCode第14题:最长公共前缀
  9. 关于Unity实现AR功能(五)摄像头转换与闪光灯开关控制
  10. awk用法小结(作者总结)