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
:)は非常に重要です。他のものは、サーバーをどのように使用するかによって重要です(sshd
、apache2
/httpd
など)。追加機能(例:)は、あなたまたはあなたのコードがその機能を使用している場合にのみ必要ですatd
。
それらを殺すことは一般的にそれらを扱う方法ではありません。代わりに、まずその機能を無効にする(または完全に削除する)必要があります。これを行う方法は、仮想サーバーが実行されている展開によって異なります。