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の違いを簡単に理解する

推薦する

CentOS7.6 システムで yum を使用して lnmp 環境を構成する方法

1. インストールバージョンの詳細 サーバー: MariaDB サーバーバージョン: 5.5.60-...

Vueは3階層メニューを再帰的に実装する

この記事の例では、3階層メニューを再帰的に実装するVueの具体的なコードを参考までに共有しています。...

Vue3 の参照と参照の詳細

エディターは、Vue3のデータの関連する問題も共有します。次のような例を見てみましょう。 Vue.c...

一般的なテーブルコンポーネントの Vue カプセル化の完全な手順記録

目次序文テーブル コンポーネントをカプセル化する必要があるのはなぜですか?ステップ1: 共通コンポー...

JQueryはアニメーション効果の非表示と表示を実装します

この記事では、アニメーション効果の非表示と表示を実現するためのJQueryの具体的なコードを参考まで...

Windows システムに VirtualBox と Ubuntu 16.04 をインストールするための詳細なチュートリアル

1. ソフトウェアの紹介バーチャルボックスVirtualBox は、無料のオープンソース仮想マシン ...

Vue h関数の使い方の詳しい説明

目次1. 理解2. 使用1. h() パラメータ2. 使い方が簡単3. カウンターケースを実装する4...

CentOS 7 で MySQL 5.7.23 をアップグレードする際の落とし穴と解決策

序文最近、CentOS 7 で MySQL 5.7.23 をアップグレードする際に落とし穴を発見しま...

https暗号化アクセス用にnginxを設定するための詳細なチュートリアル

環境: 1 CentOS Linux リリース 7.5.1804 (コア)ファイアウォールと sel...

Vue.js $refs 使用例の説明

プロパティやイベントがあるにもかかわらず、JavaScript で子コンポーネントに直接アクセスする...

divは、自動入力スタイルをブロックする入力ボックスとして入力を使用せずにコンテンツを入力できます。

今日、私は公開用の動的なウィンドウ スタイルを設計しましたが、マウスで入力をクリックしたときにブラウ...

HTML 形式の JSON 出力の例 (テスト インターフェース)

JSON データを美しいインデント形式で表示するには、最も単純な JSON.stringify 関...

UbuntuにMySQLデータベースをインストールする方法

Ubuntu は、Linux をベースにした無料のオープンソース デスクトップ PC オペレーティン...

純粋な HTML+CSS でオリンピック リングを実装するためのサンプル コード

レンダリング コード - 青と黄色のリングを例に挙げます <div class="コ...

分散監視システムZabbixはSNMPとJMXチャネルを使用してデータを収集します

前回の記事では、Zabbix のパッシブ、アクティブ、Web 監視に関するトピックについて学習しまし...