系统服务启动失败
我试图让一个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
添加到您的单元文件,以确保您捕获您正在运行的服务的输出。