起動時に生成されたプロセスを終了しても安全ですか?

起動時に生成されたプロセスを終了しても安全ですか?

Debian 7を実行している仮想サーバーがあり、サーバーを起動してコマンドを呼び出すたびに起動時にtop自動的に起動する多くのプロセスがあります。

私はそれらを殺すことができますか?それとも、仮想サーバーの一般的な機能にとって重要ですか?

答え1

いつものように状況によって異なります...

通常、Debian をインストールする際には、最小限のインストールから始めて、必要で実行したいものを追加します。自動的に開始されるすべての項目を実行する必要があります。

インストールしてアクティブ化するのに必要なものよりもはるかに多くのアイテムがあるかもしれませんが、ランダムにアイテムを削除することは潜在的なオーバーヘッドを減らすための間違った方法です。

何がインストールされているか、システムが起動したときにどのサービスが自動的に開始されるかを確認し、そのサービスが必要かどうかを決定します。

その後、特定のサービスを正常に停止し(たとえば、従来使用されている/etc/init.d/servicename stop)、問題がなければ、サービスが自動的に開始されないようにするか、パッケージを完全に削除します。

あなたが見るもののほとんどは、topおそらく単に殺すことができないカーネルスレッドです。たとえば、ほとんどアイドル状態のシステムでは、次のようになります。

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25878 <me>      20   0 15036 1172  912 R    0  0.0   0:00.09 top
    1 root      20   0 19356 1516 1196 S    0  0.0   0:02.01 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.21 kthreadd
    3 root      RT   0     0    0    0 S    0  0.0   0:01.03 migration/0
    4 root      20   0     0    0    0 S    0  0.0   0:00.20 ksoftirqd/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S    0  0.0   0:01.75 watchdog/0
    7 root      RT   0     0    0    0 S    0  0.0   0:00.36 migration/1
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/1
    9 root      20   0     0    0    0 S    0  0.0   0:00.36 ksoftirqd/1
   10 root      RT   0     0    0    0 S    0  0.0   0:01.72 watchdog/1
   11 root      20   0     0    0    0 S    0  0.0   0:37.92 events/0
   12 root      20   0     0    0    0 S    0  0.0   0:43.73 events/1

実際のアプリケーションは2つしか表示されず、top残りはinitカーネル0の一部であることを示すメモリスペースがあります。

シャットダウンは、initシステム内のすべてのプロセスの親プロセスであり、他のすべてのプロセスの開始を担当します。システムをシャットダウンする安定した方法なので、避けるべきです。

答え2

一部はそうかもしれません。一部はそうではないかもしれません。

を確認すると、これらの多くがの子であり、名前も括弧内に表示されていることps fxaがわかります。[kthreadd]デフォルトでは無視できるもの(Linuxカーネルの一部である)。

他にも一つ一つ個別に勉強しなければなりません。一部(例init:)は非常に重要です。他のものは、サーバーをどのように使用するかによって重要です(sshdapache2/httpdなど)。追加機能(例:)は、あなたまたはあなたのコードがその機能を使用している場合にのみ必要ですatd

それらを殺すことは一般的にそれらを扱う方法ではありません。代わりに、まずその機能を無効にする(または完全に削除する)必要があります。これを行う方法は、仮想サーバーが実行されている展開によって異なります。

関連情報