Linux に起動方法を追加する (サービス/スクリプト)

Linux に起動方法を追加する (サービス/スクリプト)

システムの起動時に読み込む必要がある設定ファイル

/etc/profile、/root/.bash_profile
/etc/bashrc、/root/.bashrc
/etc/profile.d/*.sh、/etc/profile.d/lang.sh
/etc/sysconfig/i18n、/etc/rc.local (/etc/rc.d/rc.local)

1. ブートスタートアップファイルを変更する: /etc/rc.local (または /etc/rc.d/rc.local)

# 1. rc.localファイルを編集する [root@localhost ~]# vi /etc/rc.local

# 2. rc.local ファイルを変更し、exit 0 の前に次のコマンドを追加します。保存して終了します。
/etc/init.d/mysqld を起動します #mysql を起動します/etc/init.d/nginx を起動します #nginx を起動します supervisord -c /etc/supervisor/supervisord.conf # supervisord を起動します/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null

# 3. 最後に、rc.local ファイルの実行権限を変更します [root@localhost ~]# chmod +x /etc/rc.local
[root@localhost ~]# chmod 755 /etc/rc.local

2. 自分でシェルスクリプトを書く

記述したスクリプト (.sh ファイル) を /etc/profile.d/ ディレクトリに配置します。このディレクトリ内のすべてのシェル スクリプトは、システムの起動後に自動的に実行されます。

3. chkconfigコマンドで設定する

# 1. (スクリプト) 起動ファイルを /etc/init.d/ または /etc/rc.d/init.d/ ディレクトリに移動します。 (前者は後者へのソフトリンクです)
mv /www/wwwroot/test.sh /etc/rc.d/init.d

# 2. 起動ファイルの前に次の 3 行のコードを必ず追加してください。そうしないと、chkconfig がサポートされていないというメッセージが表示されます。
#!/bin/sh はシステムにシェルを使用するように指示するため、すべてのシェル スクリプトは次のようになります。#chkconfig: 35 20 80 はそれぞれ実行レベル、起動優先度、シャットダウン優先度を表します。このコード行は #description: http server である必要があります。好きなように使用できます。 ! !このコード行は /bin/echo $(/bin/date +%F_%T) >> /tmp/test.log である必要があります。

# 3. スクリプトに実行権限を追加する chmod +x /etc/rc.d/init.d/test.sh

# 4. 自動スタートアップ プロジェクトにスクリプトを追加します。 chkconfig に追加し、起動時に自動的に開始します。
[root@localhost ~]# cd /etc/rc.d/init.d
[root@localhost ~]# chkconfig --add test.sh
[root@localhost ~]# chkconfig test.sh オン

# 5. ブートをオフにする [root@localhost ~]# chkconfig test.sh off

# 6. chkconfig管理からtest.shを削除する
[root@localhost ~]# chkconfig --del test.sh

# 7. chkconfig 管理を表示する [root@localhost ~]# chkconfig --list test.sh

4. サービスファイルをカスタマイズし、システムサービスに追加し、Systemctl を通じて管理する

1. サービスファイルを書き込む: nginx.service、redis.service、supervisord.service など

[Unit]: サービスの説明 説明: サービスの説明 After: サービスのカテゴリの説明 [Service] サービス実行パラメータの設定 Type=forking はバックグラウンド実行の形式です ExecStart はサービスの特定の実行コマンドです ExecReload はサービスの再起動コマンドです ExecStop はサービスの停止コマンドです PrivateTmp=True はサービスに独立した一時領域を割り当てることを意味します 注: すべての開始、再起動、および停止コマンドでは絶対パスを使用する必要があります [Install] サービスのインストールに関連する設定。マルチユーザーに設定できます WantedBy=multi-user.target 

2. ファイルは 754 の権限でディレクトリに保存されます。ディレクトリ パス: /usr/lib/systemd/system。たとえば、上記の supervisord.service ファイルはこのディレクトリの下に配置されます。

[root@localhost ~]# cat /usr/lib/systemd/system/nginx.service
[root@localhost ~]# cat /usr/lib/systemd/system/supervisord.service

3. 起動時にシステムが自動的に起動するように設定します(任意のディレクトリで実行します)。起動コマンドの実行時にエラーが発生した場合は、以下を実行してください: systemctl daemon-reload

自動起動を設定する [root@localhost ~]# systemctl enable nginx.service    
[root@localhost ~]# systemctl enable supervisord

自動起動を停止する [root@localhost ~]# systemctl enable nginx.service
[root@localhost ~]# systemctl は supervisord を無効にする

起動時に起動されているか確認する [root@localhost ~]# systemctl is-enabled nginx
[root@localhost ~]# systemctl is-enabled supervisord

4. その他のコマンド

nginx サービスを開始します [root@localhost ~]# systemctl start nginx.service

nginx サービスを停止します [root@localhost ~]# systemctl start nginx.service

nginx サービスを再起動します [root@localhost ~]# systemctl restart nginx.service

nginx サービスの現在のステータスを表示します [root@localhost ~]# systemctl status nginx.service

開始されているすべてのサービスを表示します [root@localhost ~]# systemctl list-units --type=service

5. サービスファイルの例:

# supervisord.service プロセス管理サービスファイル [Unit]
説明=プロセス監視および制御デーモン # 内容を自分で定義します: 説明=スーパーバイザデーモン
後=rc-local.service nss-user-lookup.target

[サービス]
タイプ=フォーク
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop= /usr/bin/supervisorctl シャットダウン 
ExecReload=/usr/bin/supervisorctl リロード
再起動=失敗時
再起動秒数=42秒
キルモード=プロセス 

[インストール]
WantedBy=マルチユーザー.ターゲット

# nginx.service サービスファイル [Unit]
説明=nginx - 高性能ウェブサーバー
後=network.target remote-fs.target nss-lookup.target

[サービス]
タイプ=フォーク
実行開始=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s 再ロード
ExecStop=/usr/local/nginx/sbin/nginx -s stop

[インストール]
WantedBy=マルチユーザー.ターゲット

# redis.service サービスファイル [Unit]
説明=Redis
後=network.target remote-fs.target nss-lookup.target

[サービス]
タイプ=フォーク
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=kill -INT `cat /tmp/redis.pid`
ユーザー=www
グループ=www

[インストール]
WantedBy=マルチユーザー.ターゲット

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

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

<<:  vue $setは配列コレクションオブジェクトへの値の割り当てを実装します

>>:  Oracle の開閉の 4 つのモード

推薦する

JavaScript Canvas は動的なワイヤーフレーム効果を描画します

この記事では、JavaScript Canvasの動的なワイヤーフレーム効果を描画する具体的なコード...

単純なCSSの詳細に惚れ込むと、重要ではないものの、効率性が向上する可能性がある

CSS の将来は非常に楽しみです。一方では、まったく新しいページ レイアウト方法であり、他方では、ク...

Linux カーネル デバイス ドライバー proc ファイル システム ノート

/***************** * proc ファイルシステム***************...

CSS 要素の非表示の原則と display:none および visibility:hidden

1. CSS 要素の非表示<br />CSS では、要素を非表示にする (つまり、画面の...

アバター変更機能を実装するJavaScript

この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

Vue のリスナーの基本的な使用例

目次序文1. リスナーの基本的な使い方2. リスナー形式3. ページに入るとすぐに監視とディープモニ...

Vueは、商品の数を制御するためのコンポーネントのパッケージ化と使用を実装します。

Vueのコントロール商品数量コンポーネントのカプセル化と使用は参考までに。具体的な内容は以下のとお...

MySql バッチに挿入するときにデータの重複を避ける方法

目次序文1. ignore を挿入2. 重複キーの更新時3. を置き換える要約する序文Mysql は...

ドロップダウンメニューとスライドメニューのデザイン例

ドロップダウン メニューやスライド メニューを使用している Web サイトをたくさん見つけたので、私...

jQuery エディタ プラグイン tinyMCE の使い方

簡略化されたファイル サイズを変更し、サンプルをダウンロードします。ファイルをローカル コンピュータ...

Nginxを使ってサーバー内で複数コンテナの共存を実現する方法

背景Tencent Linux クラウド ホストがあり、その上に Docker (ServiceDo...

MySQLでスケジュールされたタスクを設定する方法の分析

この記事では、例を使用して、MySQL でスケジュールされたタスクを設定する方法について説明します。...

Web ページでフラッシュの wmode 属性を使用する方法をご存知ですか?

Web 開発を行う際に、フラッシュがページ内の要素をブロックする状況に遭遇することがあります。フラ...

この SQL 書き込み方法では本当にインデックスが失敗するのでしょうか?

序文インターネット上には、MySQL でインデックスにヒットできないさまざまな状況をまとめた記事がよ...

Win2008 R2 mysql 5.5 zip 形式 mysql のインストールと設定

Win2008 R2 zip形式のMySQLのインストールと設定1. Baidu MySQL 5.6...