一个python脚本,拷贝到linux的服务器中运行.测试运行正常
python3 myPythonScript.py
但是,如果设置服务,则启动失败.
设置服务的方式是这样的,到/lib/systemd/system下添加myservice.service文件,内容如下:
[Unit]
Description=描述
[Service]
ExecStart=/usr/bin/python3 /home/user/heartbeat.py
[Install]
WantedBy=multi-user.target
用sudo service myservice start启动,然后用sodu service myservice status查看启动结果,结果启动失败,原因是找不到某python模块.
后经过查阅资料,原来是用pip命令安装模块的时候,默认安装到我自己用户名下了.而服务启动的时候,默认以root用户启动,因此就找不到这个模块了.
所以,服务启动的时候,设置启动用户为自己.就可以解决问题.service文件的配置如下
[Unit]
Description=描述
[Service]
WorkingDirectory=/home/你的用户名/
User=你的用户名
ExecStart=/usr/bin/python3 /home/user/heartbeat.py
[Install]
WantedBy=multi-user.target
当然,用root用户来启动服务,也不会有这个问题.