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 の使用法の概要

推薦する

JavaがMySQL 8.0に接続できない問題の解決策

この記事では、参考までにMySQL 8.0に接続できないJavaの問題をまとめて紹介します。具体的な...

WeChatアプレット実装アンカー位置決め機能の例

序文小規模なプログラムの開発では、リストをスクロールして表示する必要性に遭遇することがよくあります。...

Dockerがログファイルを保存する場所の詳細な説明

目次ログはどこに保存されますか?コンテナ内のアプリケーションからのログを表示するDockerデーモン...

mysqlタイムスタンプの使用

序文:タイムスタンプ フィールドは、MySQL でよく使用されます。たとえば、データ行が作成または変...

Javascript 操作メカニズム イベントループ

目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...

JavaScript でロジック判定コードを最適化する方法

序文日常生活で使用する論理的判断文には、if...else...、switch...case...、...

基本的なウェブページパフォーマンス最適化ルールの簡単な概要

ブラウザのウェブページを最適化するためのいくつかのルールページの最適化静的リソース圧縮ビルド ツール...

JavaScript で判決文をエレガントに記述する例

目次序文1. モナドの判断1.1 例1.2 オブジェクトに入れる1.3 マップに載せる2. 複数の判...

純粋な CSS3 でペットの鶏のサンプルコードを実現

最近、CSS3に関する知識や記事をたくさん読んできましたが、CSS3はとても便利に使えると思います。...

GolangでMySQLデータベースを操作するための実装コード

序文Golang は、SQL データベースにアクセスするための database/sql パッケージ...

UnityはMySQLに接続し、テーブルデータの実装コードを読み取ります

表は以下のとおりです。 Unity が読み取って呼び出すときのコード: データベース内の別のテーブル...

CSSメディアクエリのアスペクト比を小さくする方法

CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...

dl、dt、dd はいつ使用するのが適切ですか?

dl:定義一覧定義リストdt:定義タイトルタイトルを定義するdd:定義説明定義の説明dt は情報のタ...

WHMCS V7.4.2 グラフィカル インストール チュートリアル

1. はじめにWHMCS は、ユーザー管理、請求書の支払い、ヘルプ サービスなど、オンライン ビジネ...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...