Systemd 服务启动失败

2024-04-06

我试图让 NodeJS 服务器在启动时运行,因此我创建了以下 systemd 单元文件:

[Unit]
Description=TI SensorTag Communicator
After=network.target

[Service]
ExecStart=/usr/bin/node /home/pi/sensortag-comm/sensortag.js
User=root

[Install]
WantedBy=multi-user.target

我不确定我在这里做错了什么。它似乎在 Nodejs 脚本启动之前就失败了,因为没有日志记录发生。我的脚本依赖于 mysql 5.5(我认为这是我遇到问题的地方)。任何见解,甚至不同的解决方案将不胜感激。

此外,一旦我登录到系统,它就可以正常运行。

Update

该服务已启用,并通过journalctl 进行记录。我将在 2016 年 7 月 11 日更新结果。

不知道为什么它第一次不起作用,但在检查journalctl后发现问题100%是MySQL没有启动。我再次将其更改为After=MySQL.service效果非常好!


如果输出中根本没有提及该服务journalctl这可能表明该服务不是enabled在启动时启动。

让你跑systemctl enable my-unit-name在下次启动测试之前。

另外,由于您依赖于 MySQL 的启动和运行,因此您应该使用以下内容进行声明:After=mysql.service。确切的服务名称可能取决于您的 Linux 发行版,但您没有说明。

Adding User=root不添加任何内容,因为系统单元默认情况下将由 root 运行。

当您说“它失败”时,您没有指定它是在启动时失败还是通过测试运行失败systemctl start my-unit-name.

尝试启动服务后,如果运行,应该会记录日志journalctl -u my-unit.name.service.

您也可以考虑添加StandardOutput=journal到您的单元文件中,以确保您也捕获正在运行的服务的输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Systemd 服务启动失败 的相关文章

随机推荐