ฉันจะเริ่มต้นกระบวนการด้วยชื่ออื่นได้อย่างไร


12

โดยทั่วไปฉันต้องการเริ่มต้นกระบวนการแบบไดนามิกซึ่งอาจสร้างกระบวนการลูก ๆ ของพวกเขาเองฉันยังต้องการฆ่ากลุ่มของกระบวนการที่ฉันเพิ่งสร้างเมื่อใดก็ตามที่ฉันต้องการ

วิธีหนึ่งที่ฉันคิดได้ก็คือเริ่มกระบวนการด้วยชื่อ (เพื่อแยกความแตกต่างเป็นกลุ่ม) จากนั้นใช้pkillเพื่อฆ่าพวกเขาด้วยชื่อ

คำถามคือวิธีเริ่มกระบวนการด้วยชื่อเพื่อให้ฉันสามารถใช้pkillเพื่อฆ่าพวกเขาด้วยชื่อ? ฉันเปิดให้โซลูชั่นอื่น ๆ เช่นกัน


คุณกำลังขอวิธีเริ่มกระบวนการด้วยชื่อที่แตกต่างจากที่ใช้บ่อยไหม? หรือคุณแค่ถามวิธีเริ่มกระบวนการจากบรรทัดคำสั่ง?
Eliah Kagan

ชื่อกระบวนการแสดงเหมือนกับชื่อไฟล์โดยค่าเริ่มต้นใน Linux ฉันไม่ต้องการใช้ชื่อไฟล์เริ่มต้นเป็นชื่อกระบวนการหรือเปลี่ยนชื่อไฟล์ทุกครั้งที่ฉันเรียกใช้ ดังนั้นฉันต้องการเริ่มต้นกระบวนการด้วยชื่อเฉพาะที่ฉันต้องการเพื่อให้ฉันสามารถใช้ 'pkill -f MyOwnName' เพื่อฆ่ากระบวนการทั้งหมดที่ฉันเพิ่งเริ่มต้นชื่อ MyOwnName ในครั้งเดียว
แคช

คำตอบ:


12

คุณสามารถใช้execเชลล์บิวด์อิน:

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

<command>execแทนที่เปลือกปัจจุบันไม่มีกระบวนการใหม่จะถูกสร้างขึ้นว่าทำไมฉันเริ่มเปลือกใหม่ที่จะโทร

จากนั้นคุณสามารถฆ่ากระบวนการด้วย:

pkill -f MyUniqueProcessName

คุณสามารถเริ่มกระบวนการมากกว่าหนึ่งกระบวนการภายใต้ชื่อเดียวกันจากนั้นpkill -f <name>จะฆ่ากระบวนการทั้งหมด


คุณเลิกทำbash -c "exec -a MyUniqueProcessName <command> &"อย่างไร
VNVN

1
@VNVN คุณทำไม่ได้ หากคำสั่งถูกรันคำสั่งจะถูกรัน หากต้องการ "เลิกทำ" คุณจำเป็นต้องรู้อย่างแน่นอนว่าทำอะไรและเลิกทำด้วยตนเองหากเป็นไปได้ ไม่มี Ctrl + Z เมื่อเรียกใช้คำสั่ง
terdon

+1 การสังเกตของฉันคือชื่อที่ใช้สำหรับexec -a name sleep 100การแสดงขึ้นเมื่อฉันทำแต่ไม่เมื่อฉันทำps -ef pstree -p
เทรเวอร์บอยด์สมิ ธ

มันไม่ได้ผลสำหรับการผสมผสาน ->bash -c "exec -a mymeld123 meld &"
Eduardo Lucio

0

AMItac / The Solaris Agency

ฉันมีกรณีนี้ด้วยเครื่องมือแปลงรหัสเสียง (ใช้งาน 3 ครั้ง) แต่มีเพียงหนึ่งชื่อ

ฉันทำตาม ไม่ต้องไปที่ถังขยะจากเครื่องมือเชลล์และคัดลอก 3 ครั้งแล้วตั้งชื่อใหม่ tc-1, tc-2, tc-3 (เป็นเครื่องมือขนาดเล็กดังนั้นมันจึงไม่กินพื้นที่ Harddisc มาก (ด้วยไบนารีไขมันที่คุณไม่ควรใช้วิธีอื่น ๆ ที่กล่าวถึง)

ดังนั้นกระบวนการเริ่มต้นด้วยชื่อที่ไม่ซ้ำกันและสามารถฆ่าด้วยชื่อที่ไม่ซ้ำกันนี้โดยไม่มีอันตรายจากการฆ่ากระบวนการแปลงรหัสอื่น ๆ ที่ฉันต้องการดำเนินการต่อ

เคล็ดลับอื่นอาจทำงาน ....

เพิ่ม #bash สคริปต์ Name.sh ทำให้สามารถเรียกใช้งานได้ พิมพ์คำสั่งของคุณที่นั่นและเริ่มสคริปต์ทุบตีเอง บน Centos จะใช้ชื่อ Bashscript ที่คุณทำการ excecuted และไม่ใช่ Bin bin เอง

หวังว่าสิ่งที่ช่วยให้ใครบางคนออกมี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.