linux上像服务一样启动python程序,开机自动启动,能够start,stop,restart,status等?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux上像服务一样启动python程序,开机自动启动,能够start,stop,restart,status等?相关的知识,希望对你有一定的参考价值。

shell脚本服务
========================================================================

#!/bin/bash
#chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机,6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机
#description:mystart service
RETVAL=0
#启动服务的入口函数
start()
echo "myservice serive is start..."
su root -c "nohup python /home/myServer/test.py &"

#关闭服务的入口函数
stop()
#这里怎么写才能关闭?
echo "yihu service is stoped..."

#使用case,可以进行交互式操作
case $1 in
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL
ubuntu linux

你的python脚本要做到可以被service来管理,无需将python脚本包到shell脚本里,实现以下六个步骤即可:
1、系统有相应的python解释器,并在脚本头部声明,例如:#!/usr/bin/python
2、给予该脚本可执行权限,如:chmod +x somescript.py
3、脚本接受第一个命令参数,需要能接受至少包含start的参数,至于stop、restart以及status等并不是必须的,你可以自己来扩展。如: ./somescript.py start 这种命令格式来启动程序
4、将该脚本放到/etc/rc.d/init.d/路径下
5、chkconfig --add somescript.py添加服务
6、chkconfig --level 35 somescript.py on 在init为3和5的级别上开机启动该服务
参考技术A

1. 只能够输入Python命令 。

在Python交互模式下输入Python代码,而不要输入系统的命令。 

2. 在交互模式下打印语句不是必须的 。

在交互模式下不需要输入完整的打印语句,解释器自动打印表达式的结果,但是在文件中则需要写print 语句来打印结果。 

3. 提示符的变换和复合语句 。

当在交互模式下输入两行或多行的复合语句时,提示符会由>>> 变成 …;如果要结束复合语句的输入并执行它,那么必须按下Enter键两次,复合语句才会被执行。 

4. 交互提示模式一次运行一条语句 。

当你想测试某一条命令的时候,交互模式是一个很好的测试方法,输入然后回车即可看到执行结果,非常方便,当然对于复合语句来说,只要最后按两次Enter键即可运行代码,看到执行结果。

具体如下:

1、简介

Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

2、基本信息

Linux[2]操作系统是UNIX操作系统的一种克隆系统,它诞生linux系统于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

3、分区规定

设备管理在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等,IDE 或 SCSI 设备也不例外。Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。

参考技术B 自行写成服务脚本即可。ubuntu可以用upstart,centos6只能用init了,centos7上可以用systemd追问

有没有 ubuntu 服务脚本的例子,我是新手,谢谢

追答

https://help.ubuntu.com/community/UpstartHowto官方wiki,慢慢学吧

linux设置开机自启动

参考技术A

linux设置开机自启动执行命令

执行命令 : 编辑"/etc/rc.local",添加你想开机运行的命令

运行程序脚本 :然后在文件最后一行添加要执行程序的全路径。

例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ./hello.sh "
注意,你的命令应该添加在:exit 0 之前

linux在“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件 Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。

简单的说,运行级就是操作系统当前正在运行的功能级别。

例:在Ubuntu/debain里,可以使用update-rc.d命令来把示例脚本:/etc/init.d/proxy安装到各个runlevel中。

update-rc.d后面有三个参数,分别是/etc/init.d下的脚本名字,默认安装方式,运行的优先级。优先级的数字越大,表示越迟运行,这里我们把自己写的服务放在最后运行。

如果要卸载随机启动的服务,执行

在update-rc.d安装的时候提示了警告信息,是因为我们写的/etc/init.d/proxy太简陋了,只包含了我们想要的命令,连LSB的信息也没有提供。

只需要对自启动脚本做一些小改动,就可以避免那个警告了。如下:

到此,一个最简单的随机启动服务写好了,看起来文章挺长的,但其实也就几个命令而已。 在下次开机启动的时候,proxy.py就会以root用户身份被自动运行。

在/etc/init.d下新建示例脚本文件(startTest.sh),该脚本会启动/opt/test.sh。内容如下:

写了脚本文件之后事情还没有完,继续完成以下几个步骤:

以上是关于linux上像服务一样启动python程序,开机自动启动,能够start,stop,restart,status等?的主要内容,如果未能解决你的问题,请参考以下文章

linux优化之优化开机自启动服务

Linux将服务设置为开机自启动的方法小结

linux服务器如何关闭lnmp开机自启动

Linux学习 哪些开机自启动服务是必备的?

设置linux设置开机自启动应用程序

CentOS7 将QT应用作为开机自启动(Linux系统)