我试图让 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(使用前将#替换为@)