Linux システムを起動時に自動的にスクリプトを実行するように設定する方法の例

Linux システムを起動時に自動的にスクリプトを実行するように設定する方法の例

序文

みなさんこんにちは。私は梁旭です。

職場では、システムの起動後にスクリプトやサービスを自動的に開始する必要があることがよくあります。 Windows ではスタートアップを設定する方法が多数ありますが、Linux システムではどのように設定すればよいのでしょうか?

Linux でもスタートアップの設定は可能ですが、いくつかのコマンドを入力する必要があるかもしれません (UI インターフェイスでの設定方法もあるかもしれませんが、私はそれに慣れていないので、コマンドで操作する方が好きです)。以下では、起動設定のシンプルだが実行可能な 3 つの方法を紹介します。

方法1: /etc/rc.d/rc.local ファイルを変更する

/etc/rc.d/rc.local ファイルは、Linux システムのすべてのサービスが開始された後に実行されます。したがって、起動後に独自のスクリプトを実行する場合は、このファイルに独自のスクリプト パスを追加できます。

ただし、まずこのファイルを実行する権限があることを確認する必要があります。

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

デモンストレーションの目的で、実行するとホーム ディレクトリに特定の情報を含むファイルを書き込むスクリプトを作成しました。

$ vim 自動実行スクリプト.sh

#!/bin/bash
日付 >> /home/alvin/output.txt
ホスト名 >> /home/alvin/output.txt

保存して終了したら、実行権限を付与します。

$ chmod +x auto_run_script.sh

次に、/etc/rc.d/rc.local ファイルの最後の行にスクリプトを追加します。

$ vim /etc/rc.d/rc.local

/home/alvin/auto_run_script.sh

次に、効果を試してみましょう。システムを再起動するだけです:

$ sudo 再起動

再起動後、ホームディレクトリにスクリプトの実行結果が表示されます。

方法2: crontabを使用する

ご存知のとおり、crontab は Linux でスケジュールされたタスクです。設定した時間になると、特定のスクリプトの実行を自動的にトリガーできます。

スケジュールされたタスクの時間を自分で設定し、対応するスクリプトを記述することができます。ただし、@reboot と呼ばれる特別なタスクがあります。その文字通りの意味から、このタスクはシステムの再起動後にスクリプトを自動的に実行するためのものであることがわかります。

それで、どのようなスクリプトが実行されるのでしょうか?このスクリプトをどのように設定するのでしょうか? crontab -e で設定できます。

$ crontab -e

@reboot /home/alvin/auto_run_script.sh

その後、再起動するだけです。ランニング効果も上記と同様です。

方法3: systemdサービスを使用する

上記の 2 つの方法は、どの Linux システムでも使用できます。ただし、この方法は systemd システムにのみ適用できます。 systemd システムかどうかを判別するにはどうすればよいでしょうか?とても簡単です。ps aux コマンドを実行して、pid 1 のプロセスが systemd であるかどうかを確認するだけです。

これを実現するには、systemd 起動サービスを作成し、それを /etc/systemd/system/ ディレクトリに配置する必要があります。

作成した systemd 起動サービスは次のとおりです。サフィックスは.shではなく.serviceであることに注意してください。

$ vim auto_run_script.service

[ユニット]
説明=起動時にカスタムスクリプトを実行する
後=default.target

[サービス]
ExecStart=/home/alvin/auto_run_script.sh

[インストール]
WantedBy=デフォルト.ターゲット

サービスの内容から、最終的にスクリプト /home/alvin/auto_run_script.sh を呼び出すことがわかります。

次に、このスクリプトを /etc/systemd/systerm/ ディレクトリに配置し、次の 2 つのコマンドを実行して systemd 構成ファイルを更新し、サービスを開始します。

$ systemctlデーモンリロード
$ systemctl auto_run_script.service を有効にする

すべての準備が整ったら、システムを再起動できます。

$ 再起動

要約する

Linux システムの起動時にスクリプトを自動的に実行するための設定に関するこの記事はこれで終わりです。Linux の起動スクリプトの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux サービスを自動的に起動する 3 つの方法
  • Linux で起動時に Oracle を自動的に起動するように設定する方法
  • LinuxでのOracle起動スクリプトとその起動
  • Oracle サービスの起動および停止スクリプトと Linux でのブートの自動起動
  • Linux で Redis の起動を設定する方法
  • Linux に起動方法を追加する (サービス/スクリプト)
  • Linux 起動時にノードマネージャを起動する手順
  • Linux での Redis のパスワード設定と自動起動
  • Linuxのブートプロセスの詳細な説明
  • Linux 起動時に Redis サービスを自動的に開始する方法

<<:  Vueはページング機能を実装する

>>:  MySQLのunion allとunionの違いを簡単に理解する

推薦する

reactにおけるstateの略語の詳細な説明

序文国家とは何か私たちは皆、React はステート マシンであると言います。それはどのように反映され...

Pycharm2017はpython3.6とmysqlの接続を実現します

この記事では、pycharm2017でpython3.6とmysqlを接続する方法を参考までに紹介し...

Windows 10 に MySQL 8.0.19 を zip 形式でインストールする詳細なチュートリアル

目次1.ダウンロード後、インストールしたいディレクトリに解凍します。 2. インストールディレクトリ...

VUEはタイムライン再生コンポーネントを実装します

この記事の例では、タイムライン再生コンポーネントを実装するためのVUEの具体的なコードを参考までに共...

Docker でコンテナのポート マッピングを動的に変更する方法

前書き: Docker のポート マッピングは、多くの場合、Docker Run コマンド中に -p...

Linux ssh サービス情報と実行ステータスを表示する方法

Linux での ssh サービス構成など、ssh サーバー構成に関する記事は多数あります。ここでは...

NexusはAPIを使用して操作します

Nexus は RestApi を提供していますが、一部の API はまだ Groovy と組み合わ...

Vueにおけるキーの役割と原理の詳細な説明

目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...

MySQL CHARとVARCHARの保存と読み取りの違い

導入保存時と読み取り時に CHAR 型と VARCHAR 型の違いを本当にご存知ですか?まずいくつか...

Zabbix Agent2を使用してOracleデータベースを監視する方法

概要zabbix バージョン 5.0 以降では、zabbix-agent2 という新しい機能が追加さ...

HTMLの基本概念の詳細な説明

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 •HTML...

過去の Linux イメージの問題を修正するためのサンプル分析

過去の Linux イメージに関する問題を修正従来の Linux イメージで作成された ECS クラ...

CentOS7 (YUM) での MySQL 5.7 のインストールと設定のチュートリアル

インストール環境: CentOS7 64ビット、MySQL5.7 1. YUMソースを設定するMyS...

Html+CSS フローティング広告ストリップの実装

1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...

CSS3アニメーションを使用した簡単な指クリックアニメーションの実装例

この記事では主に、CSS3 アニメーションで簡単な指クリックアニメーションを実装する例を紹介し、皆さ...