サンプルアプリケーションの準備
追加するサービスはNode.jsで作成した簡単なHTTPサーバです。
const http = require('http');
http.createServer((req, res) => {
console.log(req.method + ' ' + req.url);
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8000, () => {
console.log('Server running')
});
このファイルを /home/ubuntu/app.js
として保存します。
systemdの設定
Ubuntu 18.04ではsystemdの設定ファイルは /etc/systemd
にあります。
以下の内容のファイルを /etc/systemd/system/http-server.service
として保存します。
[Unit]
Description = Simple HTTP Server
[Service]
ExecStart = /usr/bin/node /home/ubuntu/app.js
WorkingDirectory = /home/ubuntu
Restart = always
User = ubuntu
Group = ubuntu
[Install]
WantedBy = multi-user.target
ExecStart
にはサービスの起動コマンドを記述します。コマンドはフルパスで指定する必要があるので node
ではなく /usr/bin/node
と書きます。
サービスの起動と再起動は
systemctl start
でサービスが起動できます。
$ sudo systemctl start http-server.service
再起動は systemctl restart
を使います。
$ sudo systemctl start http-server.service
サービスを起動すると localhost:8000
へのリクエストに対してメッセージが返ってくるようになるはずです。
設定変更の反映
設定ファイルを編集したら
$ sudo systemctl daemon-reload
で設定を反映できます。
ログの閲覧
ログは以下のコマンドで閲覧できます。
$ journalctl -xef