python后端脚本停止运行_Python 启动/停止脚本(后台服务)
简述
之前,用 Python/Tornado(Web 服务器框架)实现了一个 LDAP 相关的后台组件,用于客户端的用户认证。
若用命令行方式启动脚本,十分简单:
# python web_server.py
但为了方便部署,想要把它做成一个服务(service),这样就可以用服务来控制它的启动/停止,而且便于在开机时自启动。
启动/停止脚本
启动/停止脚本 - tornado-ldap(将来需要放置到 /etc/init.d/ 中):
#!/bin/sh
# chkconfig: 123456 90 10
# LDAP service for user authentication
#
workdir=/etc/LDAP
# 启动
start() {
cd $workdir
/usr/bin/python /etc/LDAP/web_server.py &
echo "Server started."
}
# 停止
stop() {
pid=`ps -ef | grep '[p]ython /etc/LDAP/web_server.py' | awk '{ print $2 }'`
echo $pid
kill $pid
sleep 2
echo "Server killed."
}
case "$1" in
start) # 启动
start
;;
stop) # 停止
stop
;;
restart) # 重启
stop
start
;;
*)
echo "Usage: /etc/init.d/ldap {start|stop|restart}"
exit 1
esac
exit 0
第一行:#!/bin/sh 是指此脚本使用 /bin/sh 来解释执行,#! 是特殊的表示符,其后面根的是解释此脚本的 shell 的路径。
第二行:比较特殊,看起来像是注释,但 chkconfig 命令需要用到,必须存在。定义了在运行级别 1、2、3、4、5、6 中,服务将被激活(状态为:on),90 代表 Start 的顺序,10 代表 Kill(Stop)的顺序。
实现后台服务
要将其作为一个后台服务,大概分为以下几步:
1、为所需的服务创建一个用户
2、确保该用户对要设置的二进制文件具有完全访问权限:
/usr/bin/python
3、将启动/停止脚本 tornado-ldap 复制到 /etc/init.d/ 中
4、确保脚本被标记为可执行文件:
chmod +x /etc/init.d/ldap
5、在运行级别 2、3、4、5 中启用配置:
chkconfig tornado-ldap on
6、启动/停止服务:
service tornado-ldap start # 启动服务 也可使用:/etc/init.d/tornado-ldap start
service tornado-ldap stop # 停止服务
service tornado-ldap restart # 重启服务
当一切准备就绪,尝试启停服务:
[root@localhost ~]# service tornado-ldap stop # 停止服务
1879
Server killed.
[root@localhost ~]# service tornado-ldap start # 启动服务
Server started.
[root@localhost ~]# service tornado-ldap restart # 重启服务
9885
Server killed.
Server started.
Ok,完美运行,而且当再次重启系统时,tornado-ldap 服务也会自动启动。
python后端脚本停止运行_Python 启动/停止脚本(后台服务)相关推荐
- 【转】Linux Oracle服务启动停止脚本与开机自启动
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设置相关参数,首先先介 ...
- Linux Oracle服务启动停止脚本与开机自启动[转]
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...
- Linux Oracle服务启动停止脚本与开机自启动
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...
- Mysql启动报错:本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止
报错 在启动mysql服务时出现该错误: 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止. 解决前提 以管理员身份运行cmd,然后切换到mysql安装盘,找到my ...
- 如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止
启动mysql服务时出现该错误: 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止. 因为最近也碰到了这个问题,所以写博客记下 mysql版本:8.0.20(在官 ...
- 本地计算机上的MYSQL服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止解决方法
1.首先移除现在的MYSQL服务 进入mysql安装的bin目录 当前目录为C:/GJBMAP/bin/mysql/bin 打开DOS命令行输入: mysqld --remove mysql 2.查看 ...
- Spring boot centos部署启动停止脚本
原文地址:http://www.cnblogs.com/skyblog/p/7243979.html 使用脚本启动和关闭服务,centos下的脚本启动和关闭可以如下: start(){ now=`da ...
- linux启动关闭脚本,Linux中启动/停止/重启/状态的startup脚本
今天看到一个脚本,可以完成脚本的启动/停止/重启/状态,和/etc/init.d中的服务一样.但是/etc/init.d里面的服务要设置开机启动,可以使用service来管理.如果不设置开机启动且方便 ...
- linux启动脚本springboot,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法
废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` cur_shell_dir=`pwd` cur_shell_name=`basename ${ ...
最新文章
- python难嘛-自学Python很难吗,为何会看不进去!
- C++求一个整数的各位数字总和(附完整源码)
- Windows® CE 系统中的同步机制
- 医学影像后处理服务器系统的特点,【CT影像系统工作站怎么用】CT影像系统工作站好不好_使用技巧-ZOL软件百科...
- 【渝粤教育】国家开放大学2018年秋季 0222-22T模拟电子电路 参考试题
- 2.12 Hivet中order by,sort by、distribute by和cluster by
- [react] create-react-app创建新运用怎么解决卡的问题?
- 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件
- linux清空输入框,Linux uniq 命令
- 第10组-通信2班-011-抓包分析
- java三角函数计算器_java实现多功能科学计算器(包括进制转换,三角函数,四则运算等)...
- Linux Nvidia显卡驱动安装
- 橱柜衣柜 sketchup草图大师设计全屋定制家具意义?谈单拆单生产一起做了?-有屋软件
- 如何朴实无华的双开微信?
- 使用kind安装单机版k8s学习环境
- 润乾统计图超链接使用例子
- 不得不说说微信钉钉后端亿级用户架构那些事
- 解释什么叫老公?什么叫老婆?
- 盗墓小说和西高穴 真真假假曹操墓
- 《天幕红尘》笔记与思考(五)强势文化与弱势文化