我有一个提醒应用程序,我想将其作为服务运行。我在“ / lib / systemd / system”下创建了一个名为“ reminder_py.service”的服务文件。 'reminder_py.service'中的命令:
[Unit]
Description=Dummy Service
After=multi-user.target
Conflicts=getty@tty1.service
[Service]
Type=simple
Username=hrx
Groupname=hrx
ExecStart=/usr/bin/python3 /home/hrx/reminder/reminder.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
我尝试使用以下命令启动它:
sudo systemctl daemon-reload
sudo systemctl enable reminder_py.service
sudo systemctl start reminder_py.service
但是sudo systemctl status reminder_py.service
命令说:
hrx@X230:/lib/systemd/system$ sudo systemctl status reminder_py.service
● reminder_py.service - Dummy Service
Loaded: loaded (/lib/systemd/system/reminder_py.service; enabled; vendor p>
Active: failed (Result: exit-code) since Sat 2020-08-15 23:59:06 +03; 2min>
Process: 13952 ExecStart=/usr/bin/python3 /home/hrx/reminder/reminder.py (c>
Main PID: 13952 (code=exited, status=2)
Aug 15 23:59:06 X230 systemd[1]: Started Dummy Service.
Aug 15 23:59:06 X230 systemd[1]: reminder_py.service: Main process exited, code>
Aug 15 23:59:06 X230 systemd[1]: reminder_py.service: Failed with result 'exit->
我该如何解决这个问题?
以下内容可能会有所帮助:
hrx@X230:/lib/systemd/system$ users
hrx
hrx@X230:/lib/systemd/system$ groups
hrx adm cdrom sudo dip plugdev lpadmin sambashare
hrx@X230:/lib/systemd/system$ ls -al | grep reminder_py.service
-rwxrwxrwx 1 root root 256 Aug 15 23:55 reminder_py.service
我发现另一个站点的评论可能对我有帮助。但是我不太明白他在说什么。
一个简单易用的教程。我要加一些警告-将.service文件编写为python脚本将以root身份运行,这可能会带来意想不到的后果。环境也将与普通用户不同。要修复,请在
User=username
行之前添加行Group=groupname
和ExecStart
。要添加脚本期望的环境变量,请在Environment=”variable_name=variable_value”
行之前添加ExecStart
行。
答案 0 :(得分:0)
我通过用以下文件替换了内容来解决了这个问题:
[Unit]
Description=Reminder App
After=multi-user.target
Conflicts=getty@tty1.service
[Service]
Type=simple
ExecStart=/home/hrx/anaconda3/bin/python /home/hrx/Desktop/reminder/reminder.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
要了解python的路径,请运行以下命令:
type -a python