で作業するとき ディストリビューションのサービス使用しているシステムのタイプ(SysV init、Upstart、systemdなど)に応じて、サービスを停止、開始、停止、再起動する方法などが異なる場合があります。 それは多くの人が実際にどのように行われるのか疑問に思う点であり、いくつかの異なるシステムがあるという事実は、間違ったコマンドでそれを行おうとする経験の浅いユーザーを助けません。
したがって、ディストリビューションでどのように作業できるかが明確になる簡単なチュートリアルを紹介します。 これを行うには、最初に明確にする必要があるのは、使用しているデーモンのタイプです。 私が言ったように、すべてのディストリビューションが同じものを使用しているわけではありません スタートアップシステムタイプ。 実際、ご存知のように、Debianと比較したDevuanの場合のように、新しいsystemdに反対し、古いSysVでフォークまたは派生物を生成した人もいます...
ディストリビューションが使用しているシステムをどのように知ることができますか? さて、あなたはこれらのルートを検索することによって見つけることができます、そしてあなたがそれらを持っているならば、あなたはあなたのディストリビューションにそのシステムを持っているでしょう:
- あなたがsystemdを持っているかどうかを知るために:パスを見つける/ usr / lib / systemd
- あなたがUpstartを持っているかどうかを知るために:この他のパスを見つける/ usr / share / upstart
- SysVinitがあるかどうかを知るには:パス/etc/init.dを見つけます
- ヘイ 他人それが少しまれであっても、それらの特定のケースでは、それらが上記ではないと思われる場合は、同様のことを行うことができます。
それをさらに簡単にする別の方法、それは誰にとっても同じであるため、PID = 1、つまり残りがハングし、このスタートアップデーモンに正確に対応する最初のプロセスに関する情報を/ procで探すことです。 これを行うには、次のコマンドを実行するだけで、名前が返されます。
sudo stat /proc/1/exe
これで、使用しているシステムがわかったので、次のようにしましょう。 サービスの管理に使用できるコマンド:
- SysV init:/etc/init.d/ [service_demon_name] [アクション]
- systemd:systemctl [action] [service_demon_name]
- 新興企業:サービス[service_demon_name] [アクション]
- その他:別のシステムを使用している場合は、マニュアルを参照することをお勧めします。 たとえば、Linuxやその他のUnixでのまれなケースでは、SIGHUPプロセスからのシグナルを使用してサービスをリセットする場合があります。kill-HUP$(cat / var / run / [service-PID])
あなたがすべき [アクション]を置き換えます あなたがする必要があることのために。 たとえば、再起動する必要がある場合は、リセットを使用します。使用を停止する場合は、停止を使用します。スターの使用を開始する場合は、などです。 そして、[daemon_name]を開始したいサービスのデーモン名に置き換えます。 例えば:
systemctl reset httpd
私はあなたが今それをより明確にしたことを望みます。
まだ立ち上がっているシステムはありますか? 古いUbuntuがいくつかあると思います。
また、systemdを使用している場合でも、フォルダーetc /init.dを使用できます。
私はpsやpstreeのような他のコマンドを使用することを好み、sudo-this-sudo-thatを乱用しません。
よろしく
「service」コマンドは、init.dシステムとsystemdシステムの両方で機能します