linux 启动/关闭多个py脚本
后台运行脚本
需求:很多时候我们会在 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脚本相关推荐
- 启动/关闭Spring boot服务脚本
启动Spring boot服务脚本 #!/bin/bash cd /test java -jar test.jar &> ./test.log & echo "成功&q ...
- linux启动jar服务命苦_shell脚本启动jar包
1.基于maven的springboot项目打包 2.到项目路径下对应target目录找到生成的jar 将之上传到linux系统上 3.对应shell脚本 ------脚本开始------ #!/bi ...
- linux启动关闭脚本,Linux中启动/停止/重启/状态的startup脚本
今天看到一个脚本,可以完成脚本的启动/停止/重启/状态,和/etc/init.d中的服务一样.但是/etc/init.d里面的服务要设置开机启动,可以使用service来管理.如果不设置开机启动且方便 ...
- linux启动关闭脚本,Linux下自动启动关闭Oracle脚本
自动启动oracle9i 9i装在oracle文件系统下,在/oracle下建立文件startdb, 文件内容 echo "begin to start oracle&quo ...
- linux平台关闭某个进程的脚本
在开发LINUX平台下的程序时,经常需要为我们的开发的程序写启动程序和关闭程序的脚本. 启动脚本比较好做,关闭程序脚本如下: 具体思路是通过ps命令找到程序的进程ID号,然后通过Kill命令将程序Ki ...
- linux停止network服务命令是,Linux启动关闭重启网络服务的两种方式
注意:1.这三种方式主要用于以redhat为基础的发行版 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验 第一种方式:ln -s 建立启动软连接 在Linux中有7种运行级别(可在/et ...
- linux启动nifi指令,Nifi 组件脚本开发 - ExecuteScript 使用指南 (二)
Nifi 组件脚本开发 - ExecuteScript 使用指南 (二) 浅谈 Java 的反射原理 摘要: Java 的编译过程 谈及反射, 不得不先了解一下, java 的整个编译过程, 整体的 ...
- 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 ...
- Linux 启动 jar 包的 sh 脚本
shell脚本实现jar项目的启动.停止.重启,脚本如下: #!/bin/sh export jar项目=XXX.jar export jar端口=9022case "$1" in ...
最新文章
- linux下free源码,linux命令free源码解读:Procps free.c
- 校园网站建设策划方案离不开三方面
- Linux 内核安全模块学习总结
- μC/OS Ⅱ之任务就绪表的操作_2012.5.31
- 设置硬盘休眠linux,linux笔记本设置休眠
- Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)
- 怎么看电脑系统是win几_做设计,用win系统 还是苹果MAC电脑更好 (PS举例)
- 配置cocos2d-js 开发环境 通过CMD 创建工程
- 如何清空_回收站删除的文件怎么恢复?回收站清空如何恢复?
- 一个极其微小的优化想法
- PDF转换为其他格式的方法
- 50.Linux/Unix 系统编程手册(下) -- 虚拟内存操作
- apex创建快捷方式_盖伦下载的Origin平台、Apex游戏手动添加快捷方式
- 【Scratch】进阶篇-《Scratch游戏开发》FlappyTurtle
- 辐射能量、辐照度、辐射亮度
- Zigbee应用之搭建开发环境
- qq账号绑定服务器地址,网站接入 QQ 登录整合社交账号登录 - 文章教程
- html速成项目,HTML速成教材.doc
- 工控安全的一些个人建议
- yolo模型转换:pytorch -> onnx -> caffe