Bash tampaknya tidak membuat zombie. Sepertinya proses mendapatkan segera menuai ketika mereka terbunuh.
Bisakah saya membuat bash make zombie?
Mengapa saya bertanya:
Saya ingin dapat dengan aman membunuh proses anak atau dengan aman kill -9
jika itu tidak mati dalam periode waktu tertentu tetapi saya tidak ingin secara tidak sengaja melakukan zap proses yang bukan proses anak saya. Proses zombie biasanya membuatnya sangat mudah dan kondisi ras aman.
unshare
untuk membuat namespace PID, sehingga dari dalam pohon proses itu, proses luar terisolasi dan tidak dapat diakses.kill -KILL %n
manan
nomor pekerjaan, dan sebagainya), alih-alih mencoba mengelak.timeout
perintah?Jawaban:
Untuk membuat proses zombie:
Ini mengganti shell yang berjalan
sleep 1
dengan/bin/sleep 10
yang tidak akan tahusleep 1
proses dihentikan, sehingga membuat zombie selama 10 detik.Saya tidak yakin apa yang Anda harapkan dari membunuh proses zombie. Proses zombie sudah mati, Anda tidak bisa membunuhnya.
Sebenarnya, Anda bisa membuat proses zombie menghilang, tetapi dengan membunuh orang tuanya, bukan proses zombie sendiri.
sumber
Jawabannya tidak begitu menarik:
sumber
$BASHPID
adalah$$
saya pikir.$BASHPID
adalah tidak sama yang$$
. Cobalah kode berikut:echo $$ $BASHPID ;echo $(echo $$ $BASHPID)
. Anda dapat menemukan informasi lebih lanjut diman bash
.