Saya memiliki skrip di Bash yang dipanggil Script.sh
, dan perlu mengetahui PID-nya sendiri (yaitu saya harus memasukkan PID ke dalam Script.sh)
Ada ide bagaimana mengerjakan ini ?
Variabel '$$' berisi PID.
gunakan $BASHPID
atau$$
Lihat manual untuk informasi lebih lanjut, termasuk perbedaan di antara keduanya.
TL; DRTFM
$$
Memperluas ID proses dari shell.
()
subkulit, itu mengembang ke ID proses shell yang memohon, bukan subkulit.$BASHPID
Memperluas ID proses dari proses Bash saat ini.
()
subkulit, ia mengembang ke ID proses dari subkulit tersebut
$BASHPID
ini baru untuk BASH 4. Jika Anda menggunakan BASH 3.x, Anda harus menggunakan$$
Selain contoh yang diberikan dalam Panduan Script Bash Lanjutan yang dirujuk oleh Jefromi , contoh ini menunjukkan bagaimana pipa membuat subkulit:
sumber
stdin
). String ini disebut sebagai "string di sini".PID disimpan di
$$
.Contoh:
kill -9 $$
akan membunuh contoh shell dari mana ia dipanggil.sumber
kill -9
(dengan-9
bendera) dianggap berbahaya dan hanya digunakan jika benar-benar diperlukan).kill -9 $$
tepat 1 hal. Itu membunuh proses shell saat ini . Ini berguna jika Anda telah melakukan sesuatu dalam sesi shell yang tidak ingin Anda tulis.bash_history
Suka:docker run -e PASSWORD=hunter2 ircbot
Anda bisa menggunakan
$$
variabel.sumber
Jika prosesnya adalah proses anak dan $ BASHPID tidak disetel, dimungkinkan untuk meminta ppid dari proses anak yang dibuat dari proses yang berjalan. Mungkin agak jelek, tapi berhasil. Contoh:
sumber