在 AWS EC2 中将 Python 配置为服务

Era*_*ran 5 amazon-ec2 amazon-web-services

如何将 Python 脚本配置为在 Amazon AWS EC2 实例中作为服务运行(在系统重启时重新启动,在失败时重新启动)?

moe*_*ius 10

您可以systemd在 ec2 实例上创建服务来实现此目的。步骤是:

  1. 创建服务定义文件:

    sudo vi /lib/systemd/system/mypythonservice.service
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加 systemd 单元文件定义。您可以查看此内容或 systemd 参考指南以获取更多详细信息:

    [Unit]
    Description=My Python Service
    After=multi-user.target
    
    [Service]
    Type=idle
    ExecStart=/usr/bin/python /home/myuser/mypythonproject.py
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    Run Code Online (Sandbox Code Playgroud)
  3. 对文件设置必要的权限:

    sudo chmod 644 /lib/systemd/system/mypythonservice.service
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重新加载 systemd 守护进程:

    sudo systemctl daemon-reload
    
    Run Code Online (Sandbox Code Playgroud)
  5. 使服务在重新启动时启动:

    sudo systemctl enable mypythonservice.service
    
    Run Code Online (Sandbox Code Playgroud)

当然,您可以将所有这些添加为 EC2 实例用户数据脚本的一部分,以便在实例启动时自动配置。