python脚本当作Linux中的服务启动实现方法


Posted in Python onJune 28, 2019

脚本服务化目的:

python 在 文本处理中有着广泛的应用,为了满足文本数据的获取,会每天运行一些爬虫抓取数据。但是网上买的服务器会不定时进行维护,服务器会被重启。这样我们的爬虫服务就无法运行。这个时候我们可以把python脚本服务化,服务器重启后,脚本就会自动运行。解决服务器维护后需要手动运行python脚本。

实现方法:

1,给编写好的python脚本开头加上

#!/usr/bin/python

2,启动shell 脚本 编写

vi pystock.sh

#vim /etc/init.d/httpd
#!bin/bash
lock="py_stock.py"
#启动服务方法
start(){
    echo "service start...."
    su root -c "python /root/python/py_stock/src/crawler/py_stock.py &"
}
<pre name="code" class="plain">#停止服务方法
stop(){ echo "service stop...." pkill -f $lock}
#查看服务状态
status(){
    if [ -e $lock ];then
      echo "$0 service start"
    else
      echo "$0 service stop"
    fi
}
#重新启动
restart(){
    stop
    start
}
case "$1" in
"start")
    start
    ;;
"stop")
    stop
    ;;
"status")
    status
    ;;
"restart")
    restart
    ;;
*)
    echo "$0 start|stop|status|restart"
    ;;
esac

3,复制脚本到/etc/init.d/目录下:cp pystock.sh /etc/init.d/

4,给shell脚本赋予执行权限 :chmod +x /etc/init.d/pystock.sh

5,添加服务:chkconfig --add pystock.sh

6,设置服务为开机启动:chkconfig --level 35 pystock.sh on

出现的问题:

当我运行shell 脚本启动python脚本时,提示我一下错误

syntax error near unexpected token `$'{\r''

这是因为window 下换行是\r\n,linux 下换行是\n。我在window下编写的shell 脚本拷贝到linux上。shell命令解读时会先解读/r,在解读后面的脚本导致报错。而且这个\r 在Linux上是看不到的。这理要注意了

解决方法:

sed 's/\r//' 原文件 >转换后文件

以上这篇python脚本当作Linux中的服务启动实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python封装对象实现时间效果
Apr 23 Python
Python线程的两种编程方式
Apr 14 Python
Python中的XML库4Suite Server的介绍
Apr 14 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
numpy求平均值的维度设定的例子
Aug 24 Python
python实现复制大量文件功能
Aug 31 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 Python
如何基于python实现年会抽奖工具
Oct 20 Python
python二维图制作的实例代码
Dec 03 Python
python判断all函数输出结果是否为true的方法
Dec 03 Python
Python 阶乘详解
Oct 05 Python
如何用Python制作微信好友个性签名词云图
Jun 28 #Python
python打包exe开机自动启动的实例(windows)
Jun 28 #Python
python脚本开机自启的实现方法
Jun 28 #Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 #Python
python把转列表为集合的方法
Jun 28 #Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 #Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 #Python
You might like
php cli配置文件问题分析
2015/10/15 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
PHP goto语句用法实例
2019/08/06 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
jquery 学习之一 对象访问
2010/11/23 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
python单例模式实例解析
2018/08/28 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
日本航空官方网站:JAL
2019/06/19 全球购物
毕业生的自我鉴定
2013/10/29 职场文书
个人作风建设总结
2014/10/23 职场文书
航班延误投诉信
2015/07/02 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python
MySQL查询日期时间
2022/05/15 MySQL
python+opencv实现目标跟踪过程
2022/06/21 Python
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android