Linux でのソース パッケージ インストールのサービス管理

Linux でのソース パッケージ インストールのサービス管理

1. ソースパッケージサービスの起動管理

# ソース パッケージのインストール パスを通じてサービスの起動スクリプトを見つけます。
# つまり、サービスの起動スクリプトの絶対パスを取得し、
# 最後に起動オプションを追加します。
[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stoplrestart|...

知らせ:

ソース パッケージを使用してサービスをインストールする場合、各サービスの起動スクリプトは異なります。

サービスの起動スクリプトの名前はどうすればわかりますか?

公式のインストール ドキュメントには、サービスの起動スクリプトの名前が明確に記載されています。

サービスの開始例:

例:

エラーメッセージには、ホスト名localhost.localdomainが認識されないと表示されますが、Apache サービスを起動しても問題はありません。

ps aux | grep httpdコマンドを実行して、 apacheサービスが有効になっているかどうかを確認します。

次の図に示すように:

2. ソースパッケージサービスのセルフスタート管理

/etc/rc.d/rc.local構成ファイルを構成することで、ソース パッケージを通じてインストールされたサービスの自動起動管理を実装できます。

この方法は汎用的で、サービスがソース パッケージでインストールされているか RPM パッケージでインストールされているかに関係なく使用できます。重要なのは、 /etc/rc.d/rc.local rc.d/rc.local 構成ファイルにソース パッケージのサービス起動コマンドを記述するか、RPM パッケージのサービス起動コマンドを記述するかです。

したがって、Linux システムでサービスを普遍的かつ統一された方法で管理するには、構成ファイルを使用することをお勧めします。

例:

# /etc/rc.d/rc.local 設定ファイルを設定します [root@localhost ~]# vim /etc/rc.d/rc.local

# 起動ファイルの内容を変更します #!/bin/sh
#
# このスクリプトは、他のすべての init スクリプトの *後に* 実行されます。
# ここに独自の初期化用コードを入れることもできます
# 完全な Sys V スタイルの init 処理を実行したい。

/var/lock/subsys/local をタッチする
/usr/local/apache2/bin/apachectl を起動します

3. ソースパッケージサービスをサービス管理コマンドで認識させる

次に、ソース パッケージを通じてインストールされたapcheサービスを、 servicechkconfig 、およびntsysvコマンドで認識できる RPM パッケージを通じてインストールされたapacheサービスと同じにする実験を行います。

私たちが解決したい問題は次のとおりです。

(1)ソースパッケージを通じてインストールされたサービスをサービスコマンドで管理および起動できるようにする

serviceコマンドは実際には/etc/rc.d/init.d/ディレクトリでサービスの起動スクリプトを検索するだけなので、ソフト リンクを作成してソース パッケージの起動スクリプトを/etc/rc.d/init.d/ディレクトリにリンクするだけで、 serviceコマンドで管理できるようになります。

# ソースパッケージを通じてインストールされたサービスの起動スクリプトへのソフトリンクを /etc/rc.d/init.d/ ディレクトリに作成します [root@localhost ~]# ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/apachectl

次の図に示すように、 /etc/rc.d/init.d/の内容を確認します。

service apachectl restartコマンドを実行して、 apcheサービスを開始します。

serviceコマンドを通じてapcheサービスを開始でき、認識されないサービス エラーは報告されていないことがわかります。

(2)ソースパッケージを通じてインストールされたサービスをchkconfigコマンドで自動的に管理および起動できるようにする

前の手順に続いて、 /etc/rc.d/init.d/ init.d/ ディレクトリにソフトリンクされているソース パッケージを通じてインストールされたサービスの起動スクリプトを構成する必要があります。

# /etc/rc.d/init.d/ ディレクトリ内のソース パッケージの起動スクリプトを編集します。# (このファイルはソフト リンクなので、ソース パッケージの起動スクリプトは変更されたままであることに注意してください)
[root@localhost ~]# vim /etc/rc.d/init.d/apachectl

# 先頭に次の内容を追加します #!/bin/sh
# コンテンツ1を追加
# httpd スクリプトが chkconfig コマンドによって管理できることを指定します # 形式は次のとおりです: chkconfig: 実行レベル 起動順序 シャットダウン順序 # ここでは、Apache がレベル 3 と 5 で chkconfig コマンドによって管理されるように設定し、起動順序は S86、シャットダウン順序は K76 です
# 注意: (独自の順序を設定し、システム内の既存のスタートアップ プログラムの順序と競合しないようにします)
# chkconfig:35 86 76
#
# コンテンツ2を追加
# 説明、任意のコンテンツ# 説明: aaabbbccc

#chkconfig コマンドで認識されるようにするには、上記の 2 つの文を追加する必要があります。

次に、 chkconfigコマンドを有効にして、ソース パッケージによってインストールされたサービスを管理します。

[root@localhost ~]# chkconfig --add apachectl

エラーがなければ成功を示します。

Linux で自動起動サービスを表示するには、 chkconfigコマンドを使用します。

次の図に示すように:

次に、 chkconfigコマンドを使用して、サービスの自動起動状態を有効にすることができます。

(3)ntsysvコマンドがソースパッケージを通じてインストールされたサービスを管理できるようにする

ntsysvコマンドは、実際にはchkconfigコマンドと同じ管理メカニズムを使用します。つまり、上記のchkconfigコマンドはソース パッケージによってインストールされたサービスを管理でき、 ntsysvコマンドもソース パッケージによってインストールされたサービスを管理できます。

[root@localhost ~]# ntsysvコマンドを実行すると、上記で設定したapacheサービスがグラフィカル インターフェイスに表示されます。

(4)まとめ

ソース パッケージ サービスをserviceコマンドで認識および管理したい場合は、起動スクリプトを/etc/rc.d/init.d/ディレクトリにリンクするソフト リンクを作成するだけです。

ソース パッケージ サービスをchkconfigコマンドで認識させるには、サービス起動スクリプトを/etc/rc.d/init.d/ディレクトリにリンクするだけでなく、起動スクリプトを変更して、起動スクリプトの先頭に次のコードを追加する必要があります。

# chkconfig : 実行レベル、起動順序、シャットダウン順序。

# description : 説明情報。次にchkconfig --add 服務名メソッドを使用して、サービスをchkconfigコマンド管理に追加する必要があります。

コマンドの形式は次のとおりです。

[root@localhost ~]# chkconfig [オプション] [サービス名]

オプション:
  --add: chkconfig コマンドの管理にサービスを追加します。
  --del: chkconfig コマンドの管理からサービスを削除します。

# 例:
# chkconfigコマンド管理からApacheサービスを削除します [root@localhost ~]# chkconfig -del httpd

chkconfigコマンドの設定が完了すると、 ntsysvコマンドでもサービスを管理できるようになります。

ヒント:

ソース パッケージでインストールされたサービスはこの方法で処理できますが、推奨されません。ソース コード パッケージを通じてインストールされたサービスの場合は、ソース コード パッケージを使用してサービスを起動するだけです。RPM パッケージを通じてインストールされたサービスの場合は、RPM パッケージを使用してサービスを起動するだけです。これは素晴らしいことです。

Linux でのソースコード パッケージのインストールのサービス管理に関するこの記事はこれで終わりです。Linux ソースコード パッケージのインストール管理に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  ツールキット: Bootstrap よりも強力なフロントエンド フレームワーク

>>:  SQL Server での exists と except の使用法の概要

推薦する

MySQL 8.0.18 のインストールと設定方法のグラフィックチュートリアル (Windows 10 版)

この記事は、参考のためにMySQL 8.0.18のインストールと設定のグラフィックチュートリアルを記...

js でオブジェクトとオブジェクト メソッドを作成するいくつかの方法の詳細な説明

この記事は、JS レッドブックの第 8 章に記載されているオブジェクトに関する 2 番目の記事です。...

Dockerfileを使用してDockerイメージを構築する手順

Dockerfile は、命令を含むテキスト ファイルです。各命令はレイヤーを構築するため、各命令の...

Html+CSS フローティング広告ストリップの実装

1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...

携帯電話番号が合法かどうかを判断するWeChatアプレットのサンプルコード

目次シナリオ効果コード要約するシナリオ登録ページに携帯電話番号を入力し、登録インターフェイスを要求す...

Linuxファイルを表示するコマンドの詳細な説明

Linuxファイルを表示する方法ファイルの内容を表示するコマンド: catは最初の行からコンテンツを...

Nginx リバース プロキシと負荷分散を実装する方法 (Linux ベース)

ここで nginx のリバース プロキシを試してみましょう。リバースプロキシ方式とは、インターネット...

Vue のライフサイクルとフック関数

目次1.ライフサイクルとは何か2. Vueのライフサイクル3. ライフサイクルフック関数1.ライフサ...

nginx を使用して同じドメイン名で複数の Vue プロジェクトをデプロイし、リバース プロキシを使用する方法

効果現在、プロジェクトは2つ(project1、project2)あり、nginxに付属するinde...

タグ li はブロックレベル要素ですか?

なぜ高さを設定できるのでしょうか。<h1 /> などの要素とは異なり、「セミインライン」...

無効にしてHTMLフォーム入力を送信した後にフォーム値が取得されない問題を解決する方法

フォーム入力ボックスの入力をdisable属性に設定して送信すると、入力ボックスの値を取得できなくな...

史上最もクリエイティブな404ページのデザインは、ウェブサイトのユーザーエクスペリエンスを効果的に向上させます

ウェブを閲覧しているときに 404 ページに遭遇することはあまりないので、見落としがちです。しかし、...

MySQL でストリーミングクエリを使用してデータ OOM を回避する

目次1. はじめに2. JDBCはストリーミングクエリを実装する3. パフォーマンステスト3.1. ...

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

MySQL マスタースレーブレプリケーションの原理からインストールと設定までを包括的に解説します。

マスタースレーブレプリケーションがなぜ必要なのでしょうか? 1. 複雑な業務システムでは、SQL 文...