我安装了火箭聊天室在我的 Debian Jessie 上,它运行良好,我希望在启动时将其作为服务自动启动。
要手动启动 Rocket.chat,我需要
$ cd /home/hung/Rocket.chat
$ node main.js
这是我的/etc/systemd/system/rocket-chat.service
[Service]
ExecStart=/usr/local/bin/node main.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocket-chat
User=hung
Group=hung
WorkingDirectory=/home/hung/Rocket.chat
[Install]
WantedBy=multi-user.target
服务未启动:
# systemctl start rocket-chat
# systemctl status rocket-chat
● rocket-chat.service
Loaded: loaded (/etc/systemd/system/rocket-chat.service; disabled)
Active: failed (Result: start-limit) since Fri 2018-03-02 22:30:16 +07; 4s ago
Process: 1169 ExecStart=/usr/local/bin/node main.js (code=exited, status=200/CHDIR)
Main PID: 1169 (code=exited, status=200/CHDIR)
Mar 02 22:30:16 debian systemd[1]: rocket-chat.service: main process exited, code=exited, status=200/CHDIR
Mar 02 22:30:16 debian systemd[1]: Unit rocket-chat.service entered failed state.
Mar 02 22:30:16 debian systemd[1]: rocket-chat.service holdoff time over, scheduling restart.
Mar 02 22:30:16 debian systemd[1]: Stopping rocket-chat.service...
Mar 02 22:30:16 debian systemd[1]: Starting rocket-chat.service...
Mar 02 22:30:16 debian systemd[1]: rocket-chat.service start request repeated too quickly, refusing to start.
Mar 02 22:30:16 debian systemd[1]: Failed to start rocket-chat.service.
Mar 02 22:30:16 debian systemd[1]: Unit rocket-chat.service entered failed state.
这是 /var/log/syslog 中的内容:
# tail /var/log/syslog
Mar 2 22:17:21 debian systemd[1]: Started rocket-chat.service.
Mar 2 22:17:21 debian systemd[1068]: Failed at step CHDIR spawning /usr/local/bin/node: No such file or directory
Mar 2 22:17:22 debian systemd[1]: rocket-chat.service: main process exited, code=exited, status=200/CHDIR
Mar 2 22:17:22 debian systemd[1]: Unit rocket-chat.service entered failed state.
Mar 2 22:17:22 debian systemd[1]: rocket-chat.service holdoff time over, scheduling restart.
Mar 2 22:17:22 debian systemd[1]: Stopping rocket-chat.service...
Mar 2 22:17:22 debian systemd[1]: Starting rocket-chat.service...
Mar 2 22:17:22 debian systemd[1]: rocket-chat.service start request repeated too quickly, refusing to start.
Mar 2 22:17:22 debian systemd[1]: Failed to start rocket-chat.service.
Mar 2 22:17:22 debian systemd[1]: Unit rocket-chat.service entered failed state.
/usr/local/bin/node
存在:
$ /usr/local/bin/node --version
v8.9.3
/usr/local/bin/node
找不到的问题如何解决?
答案1
ExecStart
应该
ExecStart=/usr/local/bin/node /home/hung/Rocket.chat/main.js
这是我的文件的最终版本(/etc/systemd/system/rocketchat.service):
[Unit]
Description=RocketChat Server
After=network.target remote-fs.target nss-lookup.target mongod.target apache2.target
[Service]
ExecStart=/home/hung/.nvm/versions/node/v8.9.3/bin/node /var/www/chat/Rocket.Chat/main.js
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
Environment=NODE_ENV=production
Environment=PORT=3001
Environment=ROOT_URL=https://domain.com/
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat
Environment=MAIL_URL='smtp://user@domain:password@domain:587/'
[Install]
WantedBy=multi-user.target
启动服务:sudo systemctl start rocketchat
开机启动:sudo systemctl enable rocketchat