在 Ubuntu 系统上实现开机启动 app.py
本文将指导你如何在 Ubuntu 系统上使用 systemd 实现开机启动 app.py
脚本。
目录
前提条件
- 你已经在
/root/miniconda3
路径下安装了 Miniconda。 app.py
文件位于/usr/python-pojo/TesPersonWebSocket
目录下,这里用的是我的项目目录,可以根据需要配置成自己的目录文件地址。- 你的系统是 Ubuntu。
步骤
创建 systemd 服务文件
-
打开终端,创建一个新的 systemd 服务文件:
sudo nano /etc/systemd/system/tespersonwebsocket.service
-
在文件中添加以下内容:
[Unit]
Description=TesPersonWebSocket Service
After=network.target
[Service]
ExecStart=/root/miniconda3/bin/python /usr/python-pojo/TesPersonWebSocket/app.py
WorkingDirectory=/usr/python-pojo/TesPersonWebSocket
StandardOutput=inherit
StandardError=inherit
Restart=always
User=root
[Install]
WantedBy=multi-user.target
以上配置项的解释:
Description
: 服务的描述。After
: 指定服务的启动顺序,此处表示在网络服务启动后启动。ExecStart
: 指定执行的命令,这里是用 Miniconda 的 Python 解释器运行app.py
。WorkingDirectory
: 指定工作目录。StandardOutput
和StandardError
: 日志输出方式。Restart
: 服务挂掉后的重启策略。User
: 运行服务的用户。WantedBy
: 指定服务在哪个运行级别下启动,这里是多用户模式。
重新加载 systemd 配置
sudo systemctl daemon-reload
启动服务并设置为开机启动
-
启动服务:
sudo systemctl start tespersonwebsocket.service
-
检查服务状态,确保它正确启动:
sudo systemctl status tespersonwebsocket.service
-
设置服务为开机启动:
sudo systemctl enable tespersonwebsocket.service
验证开机启动
你可以通过重启系统来验证服务是否能在开机时自动启动:
sudo reboot
重启后,你可以再次检查服务状态:
sudo systemctl status tespersonwebsocket.service
额外注意事项
- 确保你的
app.py
文件具有执行权限。 - 如果
app.py
需要依赖某些环境变量或其他设置,可以将这些配置添加到服务文件中。