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

推薦する

MYSQL8.0.13 無料インストール版 設定チュートリアル例 詳細説明

1. ダウンロード、例として8.0を取り上げますダウンロードアドレス: https://dev.my...

Linux ps および pstree コマンドの知識ポイントのまとめ

Linux の ps コマンドは Process Status の略です。 ps コマンドは、システ...

Docker を使用した Redis マスタースレーブレプリケーションの実践の詳細説明

目次1. 背景2. 操作手順3. Dockerをインストールする4. 主なサービス構成5. サービス...

6秒でMySQLに100万件のレコードを挿入する方法を教えます

1. アイデアMySQL に 1,000,000 件のレコードを挿入するのにたった 6 秒しかかかり...

CSS3は光る境界線効果を実現します

操作効果: html <!-- この要素は表示されません。DOM は JavaScript に...

TypeScript のクラス

目次1. 概要2. シンプルなクラスを定義する3. 継承4. public、private、prot...

Dockerコンテナでルート権限を取得する方法

まず、コンテナが稼働している必要がありますコンテナのCONTAINER IDは、sudo docke...

JavaScript配列の組み込みメソッドの詳細な説明

目次1. Array.at() 2. Array.copyWithin() 3. 配列.entrie...

Linuxでホスト名を永続的に変更する方法

ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...

MySql 8.0.11 のインストール プロセスと Navicat とのリンク時に発生する問題の概要

私のシステムとソフトウェアのバージョンは次のとおりです。システム環境: win7、64ビットMySQ...

MySQL の Like の概念と使用法の説明

Like は中国語で「好き」を意味しますが、MySQL データベースに適用される場合、Like は、...

2017 最新バージョンの Windows インストール MySQL チュートリアル

1. まず、MySQL の公式サイトから最新バージョンの MySQL をダウンロードします。リンクを...

Ubuntuはポート22を開きます

シナリオssh 経由で Ubuntu サーバーに接続するには、xshell ツールを使用する必要があ...

CSS3のボックスサイズプロパティの興味深いボックスモデルについての簡単な説明

誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知...