好吧,我有一个配置了systemctl的服务。这是配置文件:
[Unit]
Description=The description of the service (:
After=network.target
[Service]
ExecStartPre=/bin/echo 'Starting Service' >> /var/log/node/myapp.log
ExecStart=/root/.nvm/versions/node/v5.0.0/bin/node ./bin/www
ExecStopPost=/bin/echo 'Stopping Service' >> /var/log/node/myapp.log
Restart=always
#StandardOutput=/var/log/node/myapp.log
#StandardError=/var/log/node/myapp.log
SyslogIdentifier=myapp
Environment=NODE_ENV=production
WorkingDirectory=/home/user/node-apps/theapp
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我需要的?:
1)ExecStartPre
和ExecStopPost
可以写入消息'starting service'
或写入'stopping service'
文件/var/log/node/myapp.log
。用上面的配置,不起作用,它只输出'Starting Service' >> /var/log/node/myapp.log
and 'Stopping Service' >> /var/log/node/myapp.log
to journalctl
。(我检查过journalctl -u myapp
)
2)我需要的是,而不是应用程序的所有日志,输出到journalctl
, 可以输出到文件。例如:/var/log/node/myapp.log
。我的意思是,如果在我的应用程序中,我有一个console.log()
,这可能在那里。
使用upstart,我可以这样做:
script
exec start-stop-daemon --start --make-pidfile --pidfile /var/run/upstart-yourapp.pid …
Run Code Online (Sandbox Code Playgroud)