在linux系统开发过程中,有时自己的程序可能会出问题或者被关掉,如果要一直维持运行的话,把程序加入到服务列表中是非常好的一个做法,这里就说明讲linux中讲自有程序加入到系统服务的过程,以centos7为例。

步骤:

  1. python的flask自建一个简单的web程序
  2. 加入到系统服务
  3. 启动服务以及详细参数说明

python的flask自建一个简单的web程序

这一步可以是任何你自己想要加入系统服务的程序,这里的例子是flask的一个web程序,只会输出hello world

yum install python-pip -y
pip install --upgrade pip
pip install flask

在root用户目录下建立一个简单的flask程序,先

##位置 /root/hello.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

测试运行


export FLASK_APP=hello.py
flask run

可以看到成功运行 flask_app wget测试 wget_test

加入到系统服务

首先写一个运行hello程序的脚本,这里flask需要环境变量麻烦些,其他的更容易,脚本hello.sh如下

cd /root
export FLASK_APP=hello.py
flask run

到system服务目录创建文件,比如叫flask_app

touch /etc/systemd/system/flask_app.service

内容写入

[Unit]
Description=flask_app service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=www
ExecStart=/usr/bin/bash /root/hello.sh

[Install]
WantedBy=multi-user.target

启动服务以及详细参数说明

启动服务

systemctl start flask_app
##or service flask_app start
  • Description:系统服务描述
  • After:紧接程序后面运行,这里连接网络后运行
  • StartLimitIntervalSec:多少时间后运行,这里网络一开启就运行
  • Restart:中断是否重启
  • RestartSec:中断后重启等待时间
  • User:指定程序运行用户
  • ExecStart:系统服务程序运行的命令,需要完整目录

install项目照抄就行。。。

总结:

本文解决一个常见的问题,就是遇到需要将自己的程序作为系统服务的时候,怎么添加系统服务,以及实现程序被中断后自动重启,达到程序可以稳定后台运行的目的。