系统服务启动失败

我试图让一个nodejs服务器在启动时运行,所以我创build了下面的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脚本启动之前,它似乎失败了,因为没有logging发生。 我的脚本依赖于MySQL 5.5(我认为这是我遇到问题的地方)。 任何洞察力,甚至不同的解决scheme,将不胜感激。

此外,一旦我login到系统,它运行良好。

更新

该服务已启用,正在通过journalctl进行日志logging。 我将在7/11/16更新结果。

不知道为什么它第一次没有工作,但检查journalctl的问题是100%,MySQL没有启动。 我再次将其更改为After=MySQL.service ,它完美的工作!

如果在journalctl的输出中journalctl没有提到服务,那可能表示该服务未启用在启动时启动。

让你在下一次启动testing之前运行systemctl enable my-unit-name

另外,由于你依赖于MySQL正在运行,所以你应该声明如下: After=mysql.service 。 确切的服务名称可能取决于您的Linux发行版,您没有说明。

添加User=root不会添加任何内容,因为系统单位默认情况下会以root身份运行。

当你说“失败”时,你没有指定在启动时是失败还是通过systemctl start my-unit-name运行testing。

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

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