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 つのモード

推薦する

ElementUIテーブルのヘッダーアイコンにフローティングプロンプトを追加します。

この記事では主に、ElementUI テーブルのヘッダー アイコンにフローティング プロンプトを追加...

...

jQueryは居住地を選択するためのドロップダウンボックスを実装します

居住地を選択するためのドロップダウンボックスをjQueryで実装するための具体的なコードは参考までに...

CocosCreatorでWeChatゲームを作成する方法

目次1. WeChatパブリックプラットフォームからWeChat開発者ツールをダウンロードする2. ...

中国語ウェブコンテンツを紹介する10の経験

<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

Linuxでのcrontabの使い方と注意点の詳しい説明

Crontab は定期的な実行を設定するために使用されるコマンドです。そのデーモン プロセスは cr...

CSS で text-align と margin: 0 auto を使用して中央に配置する例コード

CSSでtext-align、margin: 0 autoを使用して中央揃えにするtext-alig...

Docker に ElasticSearch をインストールする方法を 1 つの記事で解説

目次序文1. Dockerをインストールする2. ElasticSearchをインストールする3. ...

CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する

1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...

MySQL 選択最適化ソリューションに関する簡単な説明

目次実生活からの例クエリが遅い最適化する方法カウント制限最大値と最小値 min&max実生活...

HTMLページの文字セットを指定する2つの方法

1. HTMLページの文字セットを指定する2つの方法方法1: <メタ文字セット="u...

クールなバーコードエフェクトの作り方を教えます

声明:この記事では、Web ページ制作技術を使用して問題を包括的に解決するという考え方を反映して、W...

Nginx インストールの詳細なチュートリアル

1. Nginxの簡単な紹介Nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリ...