将Python脚本作为Linux系统服务启动的完整指南

落日邮差
落日邮差
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍如何将Python爬虫脚本封装为Linux系统服务,实现服务器重启后自动运行。通过编写Shell启动脚本、配置/etc/init.d目录及使用chkconfig命令,解决服务器维护导致的任务中断问题。同时针对Windows编辑导致的换行符报错提供sed修复方案,确保脚本在Linux环境下稳定执行。

Python脚本Linux服务化概述

脚本服务化的核心目的

Python在文本处理领域应用广泛,为满足数据获取需求,常需定期运行爬虫程序抓取数据。然而,云服务器会不定期进行维护并重启,导致正在运行的爬虫进程中断。通过将Python脚本服务化,可确保服务器重启后脚本自动启动,避免每次维护后手动执行脚本的繁琐操作。

配置开机自启服务的完整步骤

具体实现步骤

第一步,在已编写好的Python脚本文件头部添加解释器声明。

Python脚本头部声明


#!/usr/bin/python

第二步,编写用于启动Shell脚本的配置文件。

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

第三步,将编写好的Shell脚本复制到系统服务目录:cp pystock.sh /etc/init.d/

第四步,赋予Shell脚本可执行权限:chmod +x /etc/init.d/pystock.sh

第五步,将脚本注册为系统服务:chkconfig --add pystock.sh

第六步,配置服务在运行级别3和5下开机自动启动:chkconfig --level 35 pystock.sh on

Windows换行符导致的报错与修复

常见问题排查

在尝试通过Shell脚本启动Python脚本时,系统可能抛出如下错误提示。

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

该错误源于操作系统间的换行符差异:Windows使用\r\n,而Linux仅使用\n。若在Windows环境下编辑Shell脚本并传输至Linux,Shell解释器会先解析\r字符,导致后续脚本解析失败。由于\r在Linux终端中不可见,此问题常被忽视,需特别注意。

解决方案

使用sed命令去除文件中的\r字符,语法为:sed 's/\r//' 原文件 >转换后文件

以上即为将Python脚本作为Linux服务启动的完整实现方法及故障处理方案,供读者参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。