Pada dasarnya saya ingin memulai beberapa proses secara dinamis yang dapat membuat proses anak-anak mereka sendiri, juga saya ingin membunuh sekelompok proses yang baru saja saya buat kapan pun saya mau.
Salah satu cara yang bisa saya pikirkan adalah memulai proses dengan nama (untuk membedakan sebagai kelompok), kemudian gunakan pkill
untuk membunuh mereka dengan nama.
Pertanyaannya adalah bagaimana memulai proses dengan nama sehingga saya bisa gunakan pkill
untuk membunuh mereka dengan namanya? Saya terbuka untuk solusi lain juga.
Jawaban:
Anda dapat menggunakan
exec
shell builtin:<command>
mengganti shell saat ini, tidak ada proses baru yang dibuat, itu sebabnya saya memulai shell baru untuk meneleponexec
.Kemudian Anda dapat mematikan proses dengan:
Anda dapat memulai lebih dari satu proses dengan nama yang sama, lalu
pkill -f <name>
akan membunuh semuanya.sumber
bash -c "exec -a MyUniqueProcessName <command> &"
?exec -a name sleep 100
muncul ketika saya lakukanps -ef
tetapi tidak ketika saya melakukannyapstree -p
.bash -c "exec -a mymeld123 meld &"
AMItac / The Solaris Agency
Saya punya kasus ini dengan alat transcoding Audio. (berjalan 3 kali) tetapi hanya memiliki SATU Nama.
Saya memang mengikuti. Tidak ke direktori bin dari alat Shell dan menyalinnya 3 kali dan memberinya Nama baru. tc-1, tc-2, tc-3 (ini adalah alat kecil sehingga tidak memakan banyak ruang Harddisc (dengan binari gemuk Anda tidak harus menggunakan cara lain yang disebutkan)
jadi proses dimulai dengan Nama yang unik dan dapat dibunuh dengan Nama yang unik ini tanpa bahaya membunuh proses transcoding lain yang ingin saya lanjutkan.
Trik lain MUNGKIN bekerja ....
tambahkan skrip #bash Name.sh, buat itu bisa dieksekusi. Ketik perintah Anda di sana dan mulai skrip bash itu sendiri. Pada Centos ia menggunakan Nama Bashscript yang Anda jalankan dan bukan Nama bin itu sendiri.
Semoga ada yang membantu seseorang di luar sana.
sumber