Bagaimana saya bisa memulai proses dengan nama yang berbeda?

12

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 pkilluntuk membunuh mereka dengan nama.

Pertanyaannya adalah bagaimana memulai proses dengan nama sehingga saya bisa gunakan pkilluntuk membunuh mereka dengan namanya? Saya terbuka untuk solusi lain juga.

cache
sumber
Apakah Anda bertanya bagaimana memulai proses dengan nama yang berbeda dari yang biasanya digunakan ? Atau Anda hanya bertanya bagaimana memulai proses dari command-line?
Eliah Kagan
Nama proses ditampilkan sama dengan nama file secara default di Linux. Saya tidak ingin menggunakan nama file default sebagai nama prosesnya atau mengubah nama file setiap kali saya menjalankan. Jadi saya ingin memulai proses dengan nama tertentu yang saya inginkan sehingga saya dapat menggunakan 'pkill -f MyOwnName' untuk membunuh semua proses yang baru saja saya mulai bernama MyOwnName sekaligus.
cache

Jawaban:

12

Anda dapat menggunakan execshell builtin:

bash -c "exec -a MyUniqueProcessName <command> &"

<command>mengganti shell saat ini, tidak ada proses baru yang dibuat, itu sebabnya saya memulai shell baru untuk menelepon exec.

Kemudian Anda dapat mematikan proses dengan:

pkill -f MyUniqueProcessName

Anda dapat memulai lebih dari satu proses dengan nama yang sama, lalu pkill -f <name>akan membunuh semuanya.

Eric Carvalho
sumber
Bagaimana cara Anda membatalkan bash -c "exec -a MyUniqueProcessName <command> &"?
VNVN
1
@VNVN Anda tidak bisa. Jika suatu perintah telah dijalankan, perintah itu telah dijalankan. Untuk "membatalkan" itu, Anda harus tahu persis apa yang dilakukannya dan membatalkannya secara manual, jika memungkinkan. Tidak ada Ctrl + Z saat menjalankan perintah.
terdon
+1. pengamatan saya adalah: nama yang digunakan untuk exec -a name sleep 100muncul ketika saya lakukan ps -eftetapi tidak ketika saya melakukannya pstree -p.
Trevor Boyd Smith
Itu tidak bekerja untuk berbaur. ->bash -c "exec -a mymeld123 meld &"
Eduardo Lucio
0

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.

pengguna814973
sumber