系统服务没有执行我的Python脚本

时间:2018-03-31 07:41:27

标签: python linux daemon systemd

我有我的python脚本来安排每隔1分钟创建一个文本文件。我想在后台运行这个文件,即使重新启动系统它也应该存在。

我的Python文件:

import schedule
import time

#datetime.datetime.now().strftime("%H:%M")


def job():
    print("Scheduling is Working...")
    createfile()

def createfile():
    company = "Example file"
    with open('company.txt', 'w+') as f:
            f.write(str(company))
            print("File Created on:",time.ctime(time.time()))
            f.close()
    return True
# schedule.every(10).minutes.do(job)
# schedule.every().hour.do(job)

#schedule.every().day.at("11.40").do(job)
schedule.every(1).minutes.do(job)

while 1:
    schedule.run_pending()
    time.sleep(1)
  • 我正在使用systemd来提供服务
  • os是ubuntu 16和pytho3

MY Systemd服务:

[Unit]
Description=Run scheduler back
After=multi-user.target
Conflicts=getty@tty1.service

[Service]
Type=simple
ExecStart=/usr/bin/python3 /var/www/html/dev/schedulerun.py > /var/log/sanu_daemon.log 2>&1
StandardInput=tty-force

[Install]
WantedBy=multi-user.target

我检查了状态,它工作正常,但没有创建文本文件 我无法弄清楚错误是什么。

1 个答案:

答案 0 :(得分:1)

您可以在“服务”部分配置工作目录和用户:

[Service]
WorkingDirectory=/var/www/html/dev/
User=frank
# or www-data, or whatever user you want ...

# Other settings, such as ...
Type=simple
ExecStart=/usr/bin/python3 /var/www/html/dev/schedulerun.py > /var/log/sanu_daemon.log 2>&1
StandardInput=tty-force

有关详细信息,请参阅systemd.exec manpage