Ubuntuで自動起動プログラムを設定する方法

Ubuntuでは、システムの起動時に特定のシェルスクリプトを自動実行する設定が可能です。以下にその手順を説明します。

シェルの作成と権限の付与

まず、実行したい内容をシェルスクリプトとして作成します。

  1. 起動時に実行したい.shファイルをユーザホーム直下に作成する
  2. .shファイルに実行権限を付与する
    sudo chmod +x ./setup_xxx.sh

サービスファイルの作成

  1. /etc/systemd/system/にサービスファイルを作成する
    以下はサンプル。ExecStartに実行したい.shファイルのパスを記述する
    service-name.service

    [Unit]
    Description=My Custom Service
    After=local-fs.target
    
    [Service]
    Type=simple
    ExecStart=/path/to/your/setup_xxx.sh
    
    [Install]
    WantedBy=multi-user.target

    [Unit]Afterはサービスの起動時に依存する他のサービスやターゲットを指定する。複数指定時は半角スペースで区切る
    サービス以外に、次のようなものがよく使われる

    • local-fs.target - ローカルファイルシステムが利用可能になるまで待つ
    • network.target - ネットワークが利用可能になるまで待つ
    • docker.service - Dockerデーモンが起動するまで待つ

    [Service]Restart=alwaysを指定すると、サービスが停止してもサービスを再起動する

  2. サービスファイルに自動起動設定を行う
    sudo systemctl enable service-name.service
  3. 再起動する

その他

サービスが起動中か確認する

 sudo systemctl status service-name.service

サービスが自動起動状態か確認する

enabledが表示されれば、自動起動状態です。

 sudo systemctl is-enabled service-name.service

サービスファイル更新

サービスファイルを更新したら、以下のコマンドを実行します。

 sudo systemctl daemon-reload

自動起動状態を停止する

 sudo systemctl disable service-name.service
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です