【发布时间】:2017-08-01 20:01:11
【问题描述】:
我有一个 python 脚本myScript.py,它每 2 秒写入一个文件。但是当我想将此脚本作为systemd 服务运行时,服务可以工作,但不能写入文件。
我在/lib/systemd/system/ 上创建了一个myscript.service 文件
设计如下:
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/pala/PycharmProjects/myScript.py
[Install]
WantedBy=multi-user.target
而myScript.py 是:
import time
while True:
with open("/home/pala/Documents/file.txt", "a") as myFile:
myFile.write("--**--")
time.sleep(2)
【问题讨论】:
-
你能发布
sudo systemctl status myservice的输出吗?我试过这个,它使用我的家庭目录完美地工作。将服务文件添加到/lib/systemd/system后,您是否运行了sudo systemctl daemon-reload?另外,是什么让您认为该服务有效? -
输出为:systemctl status myscript.service ● myscript.service - 我的脚本服务已加载:已加载(/lib/systemd/system/myscript.service;已禁用;供应商预设:已启用) 活动:活动(运行)自 Cts 2017-03-11 21:54:59 +03 起; 2min 7s 前 Main PID: 16614 (python) CGroup: /system.slice/myscript.service └─16614 /usr/bin/python /home/pala/PycharmProjects/myScript.py Mar 11 21:54:59 palaPC systemd[1 ]: 启动了我的脚本服务。
-
服务工作没有任何问题,如您所见,但我的脚本必须每 2 秒创建和写入 file.txt。问题是:文件不是由服务创建的
-
我写过“sudo systemctl daemon-reload”,但是没有用。重新加载计算机后,服务工作并创建了文件。感谢您所做的一切。
-
您在创建服务文件后是否运行过
sudo system systemctl start?