以下は、スクリプトの一部の基本コードですtest.sh
。
bash -c "sleep 10; echo \$(pidof unshare)" &
sudo unshare --mount --uts --ipc --net --pid --fork /bin/sh -c "
... do stuff ...
sleep 60
" &
PID=$!
スクリプトを実行すると、最初の行のバックグラウンドbashコマンドとして認識されるプロセスIDとPIDに割り当てられた値が異なります。また、ps
スクリプト内で実行してもプロセスIDは表示されません。共有されていないコードを誤って渡して、すべてがバックグラウンドで単一のプロセスとして実行されるようです。新しい名前空間のバックグラウンドで実行されているプロセスの実際のPIDをどのように取得できますか?