阿里云ECS python脚本初始配置(二)---自动启动服务

很多python这样的 flask app,在服务器端激活,长期运行。可通过以下步骤实现:

1. 配置 systemd 服务文件

首先,为每个 Flask 应用配置 systemd 服务文件,如之前提到的。假设你有多个 Flask 应用,每个应用的服务文件如下:

  • /etc/systemd/system/appA.service
  • /etc/systemd/system/appB.service
  • /etc/systemd/system/appC.service

每个服务文件的内容类似于以下示例(注意修改为适合你的应用的内容):

[Unit]
Description=Flask App A
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/path/to/your/appA
ExecStart=python3 /path/to/your/appA/app.py
Restart=always

[Install]
WantedBy=multi-user.target

2. 创建管理脚本

接下来,创建一个 Bash 脚本来管理这些服务。这个脚本可以用来启动、停止或重启所有 Flask 应用服务。

创建脚本文件

在你的主目录或 /usr/local/bin/ 中创建一个脚本文件,如 manage_flask_services.sh

#!/bin/bash

SERVICES=("appA" "appB" "appC")  # 服务名称数组

start_services() {
    for SERVICE in "${SERVICES[@]}"; do
        echo "Starting $SERVICE.service..."
        sudo systemctl start $SERVICE.service
    done
}

stop_services() {
    for SERVICE in "${SERVICES[@]}"; do
        echo "Stopping $SERVICE.service..."
        sudo systemctl stop $SERVICE.service
    done
}

restart_services() {
    for SERVICE in "${SERVICES[@]}"; do
        echo "Restarting $SERVICE.service..."
        sudo systemctl restart $SERVICE.service
    done
}

status_services() {
    for SERVICE in "${SERVICES[@]}"; do
        sudo systemctl status $SERVICE.service
    done
}

case "$1" in
    start)
        start_services
        ;;
    stop)
        stop_services
        ;;
    restart)
        restart_services
        ;;
    status)
        status_services
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

保存并赋予执行权限

保存该脚本文件后,给它赋予执行权限:

chmod +x manage_flask_services.sh

3. 使用脚本管理服务

现在,你可以通过这个脚本来管理所有的 Flask 服务:

  • 启动所有服务

    ./manage_flask_services.sh start

    停止所有服务

    ./manage_flask_services.sh stop

    重启所有服务

    ./manage_flask_services.sh restart

    查看所有服务状态

    ./manage_flask_services.sh status

    4. 崩溃自动重启

    在每个 systemd 服务文件中,我们已经配置了 Restart=always,这意味着如果服务崩溃,systemd 会自动重启该服务。

    5. 自动启动

    如果你希望这些服务在系统启动时自动启动,可以使用以下命令启用每个服务:

    sudo systemctl enable appA.service
    sudo systemctl enable appB.service
    sudo systemctl enable appC.service

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值