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

推薦する

MySQL ロック(テーブルロック、行ロック、共有ロック、排他ロック、ギャップロック)の詳細な説明

現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...

W3C チュートリアル (12): W3C SOAP アクティビティ

Web サービスは、アプリケーション間の通信に関係しています。SOAP は、Web サービス間の X...

JS での Reduce Fold Unfold の使用法の詳細な説明

目次折りたたむ(減らす) for...of の使用whileループの使用折り畳み実装に近い展開する配...

JavaScript の setTimeout() の使用法の概要

目次1. はじめに2. setIntervalとsetTimeoutの違い3.タイムアウトを設定する...

JTAを実装するためにAtomikosと組み合わせたTomcatについて

最近、プロジェクトは環境を切り替え、WebLogic を Tomcat に置き換えました。途中で発生...

Vue はモバイル端末にマルチグリッド入力ボックスを実装

最近、同社は、下図に示すように、h5 ページ操作を完了するという要件を提示しました。 ネットで入手で...

Vueベースのカスタムコンポーネントを実装してアイコンを導入する

序文プロジェクト開発では、アイコンを使用する方法はたくさんあります。iconfont で適切なアイコ...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...

nginxとバックエンドポート間の競合の解決策

質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...

CentOS 7 でゲートウェイを変更して IP を設定する方法の例

Centos7 バージョンをインストールするときに、外部ネットワークへの接続を選択すると、外部ネット...

Dockerコンテナイメージからコードを復元する手順

コードが失われ、コンテナ内で実行されているイメージから必要なコードを回復する必要がある場合があります...

HTML5で見逃せないAPIやヒントのまとめ

これまでのブログ投稿では、HTML 5 ではあまり使われていないが注目すべき API やヒントに焦点...

CocosCreatorでシューティングゲームを作る詳しい解説

目次シーン設定ゲームリソース砲塔の回転動的に生成された弾丸衝突計算効果を高めるターゲットの動き弾薬庫...

MySQL の on と where における左結合設定条件の使用法の違いの分析

この記事では、MySQL の左結合における on 条件と where 条件の使用法の違いを例を使って...

キャンバスはスクラッチカード効果を描画します

この記事では、キャンバスでスクラッチカード効果を描画するための具体的なコードを参考までに共有します。...