将python文件作为服务运行会导致退出代码状态1

时间:2019-07-09 18:38:52

标签: python error-handling systemd

摘要:

使用apshceduler的python脚本无法通过退出代码203 / EXEC作为服务加载。重要的是要注意,设计为使用while True:语法每10秒运行一次的脚本与守护程序(服务)一样运行良好。

详细信息

我编写了一个简单的test.py程序。它每隔10秒用“ some”字符串附加一些a.txt文件。当我尝试将其作为守护程序服务运行时,它带有错误代码。 。本身不使用它作为守护程序(服务),就可以正常工作。另外,如果我在编写test.py文件时未使用apscheduler,则该服务将运行平稳。 我将在此处放置所有代码以获取详细信息,包括systemctl status

代码

test.py文件

import os, glob, shutil
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
def test():
    appendFile = open(r'/home/sangharsh/code/a.txt', 'a')
    appendFile.write("Jai Bhim \n" )
    appendFile.close()
sched.add_job(test, 'interval', seconds=10)

sched.start()

位于@-/ home / sangharsh / code / workingWithFiles / 要将其作为守护程序运行,我创建了服务文件-

服务配置文件

[Unit]
Description=Test Service
After=multi-user.target
Conflicts=getty@tty1.service

[Service]
Type=simple
ExecStart=/usr/bin/env python3 /home/sangharsh/code/workingWithFiles/test.py
StandardInput=tty-force

[Install]
WantedBy=multi-user.target

此文件位于@-/ lib / systemd / system /

我重新启动守护程序-

sudo systemctl daemon-reload

然后启用test.service文件-

sudo systemctl enable test.service

并启动test.service

sudo systemctl start test.service

并检查状态

sudo systemctl status test.service

systemctl status显示:

● test.service - Test Service
   Loaded: loaded (/lib/systemd/system/test.service; enabled; vendor preset: ena
   Active: failed (Result: exit-code) since Tue 2019-07-09 23:28:10 IST; 13s ago
  Process: 5272 ExecStart=/usr/bin/env python3 /home/sangharsh/code/workingWithF
 Main PID: 5272 (code=exited, status=1/FAILURE)

Jul 09 23:28:10 sangharsh-HP-240-G4-Notebook-PC systemd[1]: Started Test Service
Jul 09 23:28:10 sangharsh-HP-240-G4-Notebook-PC systemd[1]: test.service: Main p
Jul 09 23:28:10 sangharsh-HP-240-G4-Notebook-PC systemd[1]: test.service: Failed

我提到了this问题。我尝试了这些选项,但无济于事。 并且this不太适用,因为它存在权限问题。

1https://unix.stackexchange.com/q/472950/361166```

请指导。

0 个答案:

没有答案