Linuxでよく知られているサービスは、起動時に問題なく追加できます。これらのほとんどは、独自のスクリプトを持っており、「chkconfig」コマンドと「systemctl」コマンドを使って実行されるためです。

例えば、「Apache httpd」サービスを起動時に追加するには、システム・マネージャに基づいて以下のコマンドのいずれかを実行します。

For Sys V init system:

# chkconfig --level 35 httpd on

For systemd system:

# systemctl enable httpd

時には、起動時/終了時にカスタムスクリプト、コマンド、サービスを追加する必要があるかもしれません。 その場合、どのようにそれを行いますか。

この記事では、次の 3 つの方法を使用して実装する方法を理解しましょう。

  • Using /etc/rc.d/rc.local ファイルを使用する
  • crontab ファイルを使用する
  • systemd サービス ユニット

Method-1: /etc/rc.d/rc.local ファイルの使用

“/etc/rc.local” は、/etc/rc.d/rc.local ファイルを使用します。local” ファイルは、伝統的にマルチユーザーランレベルに切り替えるプロセスの最後に、すべての通常のコンピューターサービスが開始された後に実行されます。

この方法は systemd システムでも機能し、起動時に実行するスクリプトの場所を ‘/etc/rc.d/rc.local’ ファイルに追加します。

ファイルに実行権限があることを確認します。

# chmod +x /etc/rc.d/rc.local

これを詳しく理解するために、以下に示すような簡単なスクリプトを作成しますが、必要に応じて任意のスクリプトを作成できます:

# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt

スクリプトが準備できたら、以下に示すように実行可能なパーミッションをセットしてください。

# chmod +x /opt/scripts/run-script-on-boot.sh

最後にファイルの一番下にスクリプトを追加します:

# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh

これを確認するためにシステムを再起動します:

# reboot

方法2: crontabファイルを使用

cronは特定の時間にバックエンドで自動的にスケジュールされたジョブを実行するものです。

これは、cron job とともに "@reboot" という特別な文字列を使用することで簡単に実現できます。

@reboot は特別な文字列で、起動時 (boot time) に任意のコマンドまたはスクリプトを実行することができます。

この例では、システム再起動時に ‘/opt/scripts/run-script-on-boot.sh’ ファイルを実行します。

上記の例で作成したものと同じスクリプトを使用することにします。 これを行うには、crontab ファイルに次のエントリを追加するだけです:

# crontab -e@reboot /opt/scripts/run-script-on-boot.sh

これを確認するためにシステムを再起動します:

# reboot

Method-3: Using systemd service unit

この方法は systemd システムでのみ機能するので、非常に簡単です。

そのためには、systemd スタートアップ・スクリプトを作成し、”/etc/systemd/system/” ディレクトリに配置する必要があります。

これは、私たちのサンプル systemd スタートアップ ユニット スクリプトです。

# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target

ユニット スクリプトを systemd の場所に配置したら、次のコマンドを実行して systemd 設定ファイルを更新し、サービスを有効にします。

# systemctl daemon-reload# systemctl enable sample-on-boot-script.service

これを確認するためにシステムを再起動します:

# reboot

Bonus Tips:

スクリプトをバックグラウンドで実行したい場合、最後にアンパサンド "&" 記号を追加する必要があります。

/Path/To/My_Script &

別のユーザーとしてコマンドを実行したい場合は、次の形式を使用します:

su - $USER -c /Path/To/My_Script

Conclusion

このチュートリアルでは、スタートアップ時にカスタム スクリプトまたはコマンド、サービスを追加する方法について簡単に説明しました.

.

コメントを残す

メールアドレスが公開されることはありません。