5.22. 隠しプロセスが走っているため、シャットダウン時にファイルシステムのいくつかがアンマウントできません。どうすればそれらを kill できますか?

隠しプロセスでも、そのプロセス id (pid) がわかれば kill できます。多くのシステムでは、起動時に開始された全プロセスの pid を、/var (普通 /var/run が使われます) の下のどこかに保存します。シャットダウンスクリプトを修正して、これらのファイルから pid を読み、適切なシグナルを送るようにできます。

例えば、システムが pid を /var/run/<プロセス名>.pid に保存しているなら、以下の行をシャットダウンスクリプトに追加することができます −
for p in `ls /var/run/*.pid`
do
   kill -15 `cat $p`
done
sleep 5
sync;sync;sync

for p in `ls /var/run/*.pid`
do
   kill -9 `cat $p`
done
sleep 5
sync;sync;sync
これらの行を含むシャットダウンスクリプトに、CAP_KILL と CAP_INIT_KILL 権限を許可しなければなりません。/var/run ディレクトリを init スクリプト群以外の全てから隠すのも、おそらくよい考えです。

別解としては、全てのプロセスに、TERM と KILL のシグナルを単に送るというのもあります。
MAX_PROC=65535
trap : 1 2 15
I=1;while (( $I < $MAX_PROC ));do
        I=$(($I+1));
        if (( $$ != $I ));then
                kill -15 $I;
        fi;
done
sleep 5
sync;sync;sync;
I=1;
while (( $I < $MAX_PROC ));do
        I=$(($I+1));
        if (( $$ != $I ));then
                kill -9 $I;
        fi;
done
sync;sync;sync

Nenad Micic はシャットダウン時に隠れプロセスを kill する独自の C プログラム を書きました。