chroot内のすべてのプロセスを停止するにはどうすればよいですか?
UbuntuがインストールされたLVMパーティションがいくつかあります。時々、apt-get dist-upgradeインストールを最新のパッケージに更新するために、したいことがあります。私はこれをchrootで行います-プロセスは通常次のようなものです: $ sudo mount /dev/local/chroot-0 /mnt/chroot-0 $ sudo chroot /mnt/chroot-0 sh -c 'apt-get update && apt-get dist-upgrade' $ sudo umount /mnt/chroot-0 [:私はまた、マウントとアンマウント示されていない/mnt/chroot-0/{dev,sys,proc}リアルにバインドマウントとして/dev、/sysおよび/procdist-upgradeのは、これらが存在することを期待しているようだとして、] ただし、正確にアップグレードすると、このプロセスは機能しなくなり/mnt/chroot-0ます。ファイルシステム上にまだ開いているファイルがあるため、最終的なumountは失敗します。lsofchrootにファイルが開いているプロセスがあることを確認します。これらのプロセスはdist-upgrade中に開始されました。これはservice postgresql restart、パッケージのアップグレード後にchroot内の特定のサービスを再起動する必要があるためです(例:を介して)。 したがって、このchroot内で実行されているすべてのサービスを停止するようにupstartに指示する必要があると考えています。これを確実に行う方法はありますか? 私はもう試した: cat <<EOF | sudo chroot /mnt/chroot-0 /bin/sh # stop 'initctl' services initctl list | awk '/start\/running/ {print \$1}' | xargs -n1 -r …