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

Linux で systemd を使用しているかどうかを確認するにはどうすればよいですか?

PID 1 として実行されているプロセスを確認します。これを行うには、ps 1 を実行します。 そして一番上までスクロール。 systemd が PID 1 として実行されている場合は、systemd が実行されています。

または、systemctl を実行します 実行中の systemd ユニットを一覧表示します。

/sbin/init が何であるかを確認することもできます。 file /sbin/init それが実際の実行可能ファイルなのか、それとも他のパッケージの実行可能ファイルへのシンボリック リンクなのかがわかります。たとえば、systemd ボックスの場合:

[email protected] / # file /sbin/init
/sbin/init: symbolic link to ../lib/systemd/systemd

詳細については、こちらをご覧ください:https://en.wikipedia.org/wiki/Linux_startup_process

システムにあるものを正確に確認するもう 1 つの方法は、man init と入力することです。 そして、どのプログラムの man ページにたどり着くかを確認します。


これが古い質問であることは承知していますが、同じ質問を自問していたので、これが私の 2 番目の質問です。

思いついた最善の解決策

ps --no-headers -o comm 1

これは systemd のいずれかを返します または init Linux ディストリビューションとリリース全体で信頼性が高いようです。

file /sbin/init パターンマッチングの助けを借りて動作します。 ps 1 の出力 一部の Linux ディストリビューションでは、systemd が使用されているにもかかわらず「init」(シンボリック リンク) が出力されるため、役に立たないようです。

Debian 8

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:02 /sbin/init
$ file /sbin/init
/sbin/init: symbolic link to /lib/systemd/systemd

RHEL 7

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     7:46 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
$ file /sbin/init
/sbin/init: symbolic link to `../lib/systemd/systemd'

SLES 12

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:24 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
$ file /sbin/init
/sbin/init: symbolic link to `../usr/lib/systemd/systemd'

openSUSE 13.1

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:33 /sbin/init showopts
$ /sbin/init: symbolic link to `../usr/lib/systemd/systemd'

Linux
  1. gdbを使用してLinuxでCプログラムをデバッグする方法

  2. 使用しているLinuxディストリビューションを知る方法は?

  3. LinuxでSystemdサービスを作成する方法

  1. Ansibleを使用してLinuxユーザーを作成する方法

  2. / dev/randomを使用してLinuxでランダムパスワードを生成する方法

  3. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  1. Systemdは/etc/init.dスクリプトをどのように使用しますか?

  2. / dev / stdin、/ dev / stdout、および/ dev / stderrはどの程度移植可能ですか?

  3. システムが SysV、Upstart、または Systemd initsystem を使用しているかどうかを確認する方法