简述

之前,用 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 启动/停止脚本(后台服务)相关推荐

  1. 【转】Linux Oracle服务启动停止脚本与开机自启动

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设置相关参数,首先先介 ...

  2. Linux Oracle服务启动停止脚本与开机自启动[转]

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...

  3. Linux Oracle服务启动停止脚本与开机自启动

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...

  4. Mysql启动报错:本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止

    报错 在启动mysql服务时出现该错误: 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止. 解决前提 以管理员身份运行cmd,然后切换到mysql安装盘,找到my ...

  5. 如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止

    启动mysql服务时出现该错误:  本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止. 因为最近也碰到了这个问题,所以写博客记下 mysql版本:8.0.20(在官 ...

  6. 本地计算机上的MYSQL服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止解决方法

    1.首先移除现在的MYSQL服务 进入mysql安装的bin目录 当前目录为C:/GJBMAP/bin/mysql/bin 打开DOS命令行输入: mysqld --remove mysql 2.查看 ...

  7. Spring boot centos部署启动停止脚本

    原文地址:http://www.cnblogs.com/skyblog/p/7243979.html 使用脚本启动和关闭服务,centos下的脚本启动和关闭可以如下: start(){ now=`da ...

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

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

  9. linux启动脚本springboot,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` cur_shell_dir=`pwd` cur_shell_name=`basename ${ ...

最新文章

  1. python难嘛-自学Python很难吗,为何会看不进去!
  2. C++求一个整数的各位数字总和(附完整源码)
  3. Windows® CE 系统中的同步机制
  4. 医学影像后处理服务器系统的特点,【CT影像系统工作站怎么用】CT影像系统工作站好不好_使用技巧-ZOL软件百科...
  5. 【渝粤教育】国家开放大学2018年秋季 0222-22T模拟电子电路 参考试题
  6. 2.12 Hivet中order by,sort by、distribute by和cluster by
  7. [react] create-react-app创建新运用怎么解决卡的问题?
  8. 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件
  9. linux清空输入框,Linux uniq 命令
  10. 第10组-通信2班-011-抓包分析
  11. java三角函数计算器_java实现多功能科学计算器(包括进制转换,三角函数,四则运算等)...
  12. Linux Nvidia显卡驱动安装
  13. 橱柜衣柜 sketchup草图大师设计全屋定制家具意义?谈单拆单生产一起做了?-有屋软件
  14. 如何朴实无华的双开微信?
  15. 使用kind安装单机版k8s学习环境
  16. 润乾统计图超链接使用例子
  17. 不得不说说微信钉钉后端亿级用户架构那些事
  18. 解释什么叫老公?什么叫老婆?
  19. 盗墓小说和西高穴 真真假假曹操墓
  20. 《天幕红尘》笔记与思考(五)强势文化与弱势文化

热门文章

  1. unlim支撑垃圾短信还原器
  2. min2440LCD驱动
  3. 浅谈毫米波技术与应用
  4. matplotlib显示图片与图片批量裁剪
  5. XML xmlns xsi解释
  6. 三星13位VFD荧光屏驱动方案(最后附部分驱动代码和硬件设计链接)
  7. bootstrap validator ajax提交,bootstrapValidator中用ajax校验
  8. IBM DS3000存储DS3400数据恢复成功案例记录
  9. 计算机网卡号里面有以太网,以太网卡
  10. 教程-Delphi各版本与工具下载地址