![](/img/trans.png)
[英]How to convert a python script in a local conda env into systemd service in Linux?
[英]how do I make systemd service to run python project with conda env through .sh
我正在尝试通过 systemd 在启动时运行我的代码我希望它使用当前环境运行,因为它有点大,我不想重新安装所有这些
我有一个激活 python 环境并在一个大项目上调用启动脚本的 .sh 文件然后我创建了一个调用该 sh 的服务
[Unit]
Description=service to start code
[Service]
User=root
WorkingDirectory=/usr/bin
ExecStart=/home/administrator/Downloads/open_app/out_cam_app.sh
[Install]
WantedBy=multi-user.target
#https://transang.me/three-ways-to-create-a-startup-script-in-ubuntu/
但这会解决这些错误
22 18:17:56 smart-fk systemd[1]: Started service to start
22 18:17:56 smart-fk my_bas_Script.sh[1417930]: /path/to/my_bas_Script.sh: line 3: /root/anaconda3/bin/activa>
22 18:17:56 smart-fk out_cam_app.sh[1417931]: /path/to/my_bas_Script.sh: line 6: python: command not found
22 18:17:56 smart-fk out_cam_app.sh[1417932]: /path/to/my_bas_Script.sh: line 7: conda: command not found
22 18:17:56 smart-fk systemd[1]: my_Service.service: Main process exited, code=exited, status=127/n/a
22 18:17:56 smart-fk systemd[1]: my_Service.service: Failed with result 'exit-code'.
我的 bash 脚本看起来像这样,以防出现问题(它可以自行工作)
#!/bin/bash
source ~/anaconda3/bin/activate env_name
cd path/to/python/project
python python_start_point.py
conda deactivate
我还尝试让服务直接调用代码,并使代码在我使用的stackover流帖子中工作,然后开始下载一些文件,我无法在这台机器上执行此操作,因此导致连接超时失败
我在这里做错了什么?
删除WorkingDirectory=/usr/bin
并将可执行路径添加到:
Environment="PATH=/sbin:/bin:/usr/sbin:/usr/bin"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.