Systemd 服务单元失败,结果为“退出代码”

Systemd 服务单元失败,结果为“退出代码”

我有一个 python 脚本,如果我使用 /usr/bin/python3 运行它,它可以正常工作。

但我希望能够通过 systemd 的服务单元以 root 身份从 bash 文件运行它。我希望能够传递一个 bash 脚本,因为我想链接这个 python 脚本,然后再链接一个 php 脚本。

为此,我创建了以下服务(暂时没有计时器):

[Unit]
Description=My service

[Service]
User=root
ExecStart=/usr/bin/bash /home/myself/script.sh
Type=oneshot

和一个简单的 bash 脚本:

#!/bin/bash

python3 /home/myself/script.py

但是当我运行“sudo systemcl start myservice.service”时,出现此错误:

Job for myservice.service failed because the control process exited with error code.
See "systemctl status myservice.service" and "journalctl -xe" for details.

当我查看状态时:

..... systemd[1]: Starting My service...
..... bash[13176]: Traceback (most recent call last):
..... bash[13176]:   File "/home/myself/script.py", line 33, in <module>
..... bash[13176]:     files_number = next(os.walk(files_path))[2]
..... bash[13176]: StopIteration
..... systemd[1]: myservice.service: Main process exited, code=exited, status=1/FAILURE
..... systemd[1]: myservice.service: Failed with result 'exit-code'.
..... systemd[1]: Failed to start My service.

我不明白为什么它不起作用。是因为我在脚本中使用了“os”库还是其他我不理解的东西?

相关内容