到目前为止我已经阅读了几个来源。以下是我遇到的三个选项:
/etc/systemd/system
/usr/lib/systemd/system
/lib/systemd/system
我最初将我的服务放在 /lib/systemd/system 中,似乎还有很多其他服务也在该目录中。但是,它应该位于 /etc/systemd/system 中?该消息来源从未谈论过第三种选择:在 Arch Linux 上,我的 systemd 单元文件应该放在哪里?
另外,本教程似乎将其放在该目录中。http://www.raspberrypi-spy.co.uk/2015/10/how-to-autorun-a-python-script-on-boot-using-systemd/
请帮我澄清一下。启用我的单元会导致错误消息:“无法启用单元:无效参数”我假设是因为目录错误。 (我使用的是Arch Linux)
答案1
我使用 Systemd 服务来启动“kiosk”式 Pi(运行 CentOS)系统。 Systemd 从一些配置目录中提取,但通常您应该将 Systemd 服务放在/etc/systemd/system/
当然,服务文件中必须包含的内容有一些要求,但只要它位于该目录中,就sudo systemctl enable foo.service
可以启用该服务。如果您将服务放在该目录中并且仍然遇到错误,请检查您的服务文件。它至少应包含:
[Unit]
Description=Sample Script Startup
[Service]
Type=idle
ExecStart=/valid/path/to/an/executable/file
[Install]
WantedBy=multi-user.target
Type
和属性WantedBy
可能会有所不同,具体取决于您想要实现的目标,因此请阅读文档!