Tag: ubuntu Tag: ubuntu1604 Tag: ubuntu1804

スクリプトをサービスとして登録し、電源投入時に自動起動

 PHPのビルトインウェブサーバーを起動を本体の電源が入った際に自動的に起動するようにしてみます。色々やり方があるようですが、Ubuntu18.04の場合は、systemdでサービスとして起動するようにするのが簡単の様です。

 スクリプトをサービスとして登録し自動起動すると、エラーで終了しても自動起動される。

 このページでは、「/home/isao/phpweb」を登録するものとして説明します。

 Ubuntu18.04とUbntu16.04で動作確認しました。

登録するスクリプトを準備

ファイル: /home/isao/phpweb

#!/bin/bash
 
su -c "cd /home/isao/php_html;php -S localhost:8888" isao

サービスとして認識、実行

ファイル: /lib/systemd/system/phpweb.service

[Unit]
Description=demo sample php web
 
[Service]
Type=simple
ExecStart=/home/isao/phpweb
Restart=always
 
[Install]
WantedBy=multi-user.target

設定が認識されたか確認する

# systemctl list-unit-files --type=service | grep phpweb
phpweb.service                             disabled

サービスを有効にする

# systemctl enable phpweb
Created symlink /etc/systemd/system/multi-user.target.wants/phpweb.service → /lib/systemd/system/phpweb.service.

サービスを無効にする

# systemctl disable phpweb

情報表示

# systemctl status phpweb

# service phpweb status

サービスを有効にして、本体を再起動すれば、phpwebは自動起動する。
初回、再起動せずにサービスを起動したい場合

# systemctl start phpweb
# service phpweb start

なお、上記の設定では、

# service phpweb stop

としてサービスは停止しない。
PIDをkillしてもサービスは自動的に再起動する。
止める場合は、
サービスを無効にしてから、PIDを調べてkillします。