Score:0

วิธีฆ่าสคริปต์ที่ทำงานอยู่เบื้องหลัง แต่รับ PID ของสคริปต์เมื่อเรียกใช้ด้วยค่าสถานะที่กำหนดเท่านั้น

ธง in
Cas

ฉันสามารถรันสคริปต์ทุบตีได้หลายอินสแตนซ์ในเบื้องหลังและทุกอย่างก็ยอดเยี่ยม ฉันมีการตั้งค่าในลักษณะที่บางคนมี -x เป็นธงบ้างไม่เป็นบ้าง. ดู:

./test.sh &
./test.sh &
./test.sh -x &
./test.sh -x &

ตอนนี้ฉันต้องการฆ่าสคริปต์ทั้งหมดที่เรียกใช้ด้วย -x ธง. ฉันมักจะฆ่าสคริปต์ที่ทำงานอยู่เบื้องหลังโดยใช้สิ่งนี้:

ps -aux | grep -Po "^\S{1,}\s*\K\d*(?=.*test.sh$)" | \
ในขณะที่อ่านระดับ -r
ทำ
   ฆ่าระดับ $
เสร็จแล้ว

อย่างไรก็ตาม, ps -aux ไม่แสดงอาร์กิวเมนต์/แฟล็กที่ได้รับเมื่อรันสคริปต์ ดังนั้นเมื่อใช้สิ่งนั้น ฉันไม่สามารถคว้าเฉพาะสคริปต์ที่รันด้วยเท่านั้น -x. มีวิธีแก้ไขปัญหานี้หรือไม่? ฉันต้องการฆ่าเฉพาะสคริปต์พื้นหลังที่รันด้วย -x.

Score:1
ธง bd

พยายาม

ps -aF | grep -Po "^\S{1,}\s*\K\d*(?=.*test.sh -x$)"
Score:1
ธง uz
Jos

ใช้ พีคิล สั่งกับ -ฉ ธง.

คำสั่ง pkill test.sh จะฆ่ากระบวนการทั้งหมดโดยใช้ ทดสอบ.sh เป็นชื่อคำสั่ง ใช้ -ฉ แฟล็กอธิบายไว้ใน ผู้ชาย, เช่น pgrep และ พีคิล ใช้ไวยากรณ์ที่คล้ายกัน:

-f, --เต็ม

โดยปกติรูปแบบจะจับคู่กับชื่อกระบวนการเท่านั้น เมื่อตั้งค่า -f จะใช้บรรทัดคำสั่งแบบเต็ม

อย่างไรก็ตาม คุณต้องล้อมรอบรูปแบบการค้นหาด้วยเครื่องหมายคำพูด และหลีกเลี่ยงเครื่องหมาย - ของ -x. ดังนั้น pkill -f "test.sh \-x" จะฆ่าเฉพาะ ทดสอบ.sh กระบวนการที่ทำงานด้วย -x ธง.

hr flag
... หรือใช้ `--` end-of-options flag `pkill -f -- "test.sh -x"` ... คุณสามารถใช้รูปแบบ `"test.sh[ \t]+-x "` เพื่ออนุญาตให้มีช่องว่างในแนวนอนโดยพลการ
uz flag
Jos
จุดดี @steeldriver ฉันมักจะลืมเกี่ยวกับ `--`
hr flag
... เมื่อคุณลองคิดดู เป็นเรื่องแปลกที่ `pgrep`/`pkill` ไม่ได้ใช้สิ่งที่เป็น `-e pattern` ซึ่ง grep ปกติต้องทำให้รูปแบบไม่ชัดเจนจากตัวเลือก

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา