GNU/Linux >> Linux の 問題 >  >> Debian

Debian – Debianのサービスはどのように機能し、どのように管理できますか?

Windowsには、Windows自体から開始できるすべてのシステムサービスを表示するサービスマネージャーがあり、使用するユーザーを設定し、そこに権限管理があり、変数やその他の情報をサービスに渡すことができます。 、名前を付けることができ、1つのプログラムの複製サービスを作成することもできます。だから私はWindowsにメインの管理ツールを持っています。

Linuxで同じことをするにはどうすればよいですか?起動時に「svnserve」を実行するようにトリガーするにはどうすればよいですか、または特別なコンテキストで実行するようにサービスを構成するにはどうすればよいですか。すべての「プログラムされた」サービスを表示するにはどうすればよいですか?

承認された回答:

現在、Linuxで使用されている主なinitシステムは3つあります。数年前、SysVinitは1つしかありませんでした。ただし、SysVinitにはサービス依存関係のグラフ化などの機能が大幅に不足していたため、現在ではほとんどのディストリビューションで非推奨になっています。現在、ほとんどのディストリビューションはsystemdに切り替えています。新興企業もありますが。

ただし、3つの初期化システムのそれぞれについての質問に対する答えは次のとおりです。

SysVinit

現在DebianとRedHatで使用されているSysVinit。ただし、RedHatの次のバージョン(7)はsystemdを使用します。

起動時にSysVinitサービスを有効にする一般的な方法は、/etc/rc3.dでそれらをシンボリックリンクすることです。 (または/etc/rc2.d )。すべてのサービスは/etc/init.dにあります 。ただし、ディストリビューションにはこれらのファイルを管理するための独自のツールがあることが多く、代わりにそのツールを使用する必要があることに注意してください。 (Fedora/RedHatにはserviceがあります およびchkconfig 、ubuntuにはupdate-rc.dがあります )

リストサービス:

ls /etc/init.d/

サービスの開始:

/etc/init.d/{SERVICENAME} start

または

service {SERVICENAME} start

サービスの停止:

/etc/init.d/{SERVICENAME} stop

または

service {SERVICENAME} stop

サービスを有効にする:

cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}

S95 順序を指定するために使用されます。 S01はS02などの前に開始されます)

サービスを無効にする:

rm /etc/rc3.d/*{SERVICENAME}

Systemd

systemdを使用した最も注目すべきディストリビューションはFedoraです。他にもたくさん使われていますが。さらに、Debianはupstartよりもsystemdを採用することを選択したため、ほとんどのディストリビューションで事実上のupstartシステムになります(ubuntuはsystemdのupstartを削除することをすでに発表しています)。

リストサービス:

systemctl list-unit-files

サービスの開始:

systemctl start {SERVICENAME}

サービスの停止:

systemctl stop {SERVICENAME}

サービスを有効にする:

systemctl enable {SERVICENAME}

サービスを無効にする:

systemctl disable {SERVICENAME}

起動

UpstartはUbuntuの人々によって開発されました。しかし、debianがsystemdを採用することを決定した後、Ubuntuはupstartを削除すると発表しました。

Upstartは、RHEL-6に存在するため、RedHatでも簡単に使用されましたが、一般的には使用されていません。

関連:coreutilの日付はどのようにしてそのような奇妙な結果を得ることができますか?

リストサービス:

initctl list

サービスの開始:

initctl start {SERVICENAME}

サービスの停止:

initctl stop {SERVICENAME}

サービスを有効にする:

残念ながら2つの方法:

  1. ファイル/etc/default/{SERVICENAME}があります ENABLED=...という行が含まれています 。この行をENABLED=1に変更します 。

  2. ファイル/etc/init/{SERVICENAME}.overrideがあります 。 startが含まれていることを確認してください (または完全に存在しない)、manualではありません 。

サービスを無効にする:

echo manual > /etc/init/{SERVICENAME}.override

注:Gentooで使用される「OpenRC」initシステムもあります。現在、Gentooはそれを使用する唯一のディストリビューションであり、使用が検討されておらず、他のディストリビューションによってサポートされていません。そのため、その使用法については説明していません(ただし、私がそうしているとの意見がある場合は、追加できます)。


Debian
  1. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  2. Ubuntu / DebianにMonit(プロセスとサービスの監視)をインストールする方法

  3. Debian11にSuricataをインストールする方法

  1. Linuxでサービスを管理および一覧表示する方法

  2. Systemctlコマンドを使用してSystemdサービスを管理する方法

  3. Debian に Redis をインストールして構成する方法

  1. Debianバックポートをインストールして使用する方法

  2. Debian9にRedisをインストールして設定する方法

  3. cPanel サーバーでサービスを再起動するにはどうすればよいですか?