ฆ่ากระบวนการด้วยคำสั่งเดียว

หลายครั้งเราจำเป็นต้องฆ่ากระบวนการผ่านเทอร์มินัล หากเราทราบชื่อเต็มของกระบวนการ (ตัวอย่างเช่น: เคท) เราไม่มีปัญหาง่ายๆ:

killall kate

มันช่วยแก้ปัญหาให้เราได้ ... แต่จะเกิดอะไรขึ้นถ้าเราไม่รู้ชื่อที่แน่นอนของกระบวนการ?

ในโอกาสเหล่านั้นเราต้องแสดงรายการกระบวนการทั้งหมดด้วย ps aux ดังที่แสดงในภาพหน้าจอต่อไปนี้:


จากนั้นมองหา PID ของกระบวนการซึ่งในกรณีนี้เรามองหา PID ของ เคท:


จากนั้นทำ:

kill 3808

และ voila ที่นั่นเราฆ่ากระบวนการ

ในบรรทัดเดียวเราสามารถค้นหากระบวนการ (โดยไม่ต้องรู้ชื่อเต็ม) ค้นหา PID ของมันและฆ่ามันด้วย:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

อย่างที่เห็น:

  1. เราแสดงรายการกระบวนการ (ps aux)
  2. เราไม่ทราบชื่อเต็มหรือชื่อที่แน่นอนของ เคท (เดี๋ยวก่อนอาจเป็น kate-editor หรืออะไรทำนองนั้น) ดังนั้นเราจึงกรองโดย kat (เกรปแคท)
  3. แต่เราจะได้รับสองกระบวนการที่เกี่ยวข้องกับ kat หากเราใช้ตัวกรองนี้เท่านั้นกระบวนการหนึ่งคือกระบวนการ kate และอีกกระบวนการหนึ่งที่เราเปิดใช้งานสำหรับการกรองฉันจะทิ้งภาพหน้าจอไว้ให้คุณเพื่อที่คุณจะได้เข้าใจ: (สังเกตว่ามี 2 บรรทัดนั่นคือ 2 กระบวนการ)

  4. เพื่อหลีกเลี่ยงสิ่งที่อธิบายไว้ก่อนหน้านี้เราสร้างตัวกรองอื่น (grep -v grep). สิ่งที่เราจะทำตรงกันข้าม ... ถ้าเรากรองโดยใช้ grep มันจะแสดงเฉพาะรายการที่ตรงกันกับตัวกรองเท่านั้น grep -v เราสั่งให้คุณไม่แสดงการแข่งขัน แต่ให้แสดงสิ่งที่ไม่ตรงกัน ฉันแสดงภาพหน้าจอให้คุณเห็นว่าผลลัพธ์จะเป็นอย่างไร: (โปรดทราบว่าตอนนี้มีเพียงกระบวนการของ kate เท่านั้นที่ปรากฏขึ้น)

  5. เรามีกระบวนการที่เราต้องการฆ่าแยกแล้วตอนนี้เราต้องแยก PID ของมันซึ่งเป็นตัวเลขที่ 2 นั่นคือ 4062. และ PID อยู่ในคอลัมน์ที่ 2 (คอลัมน์ที่ 1 ประกอบด้วยผู้ใช้ที่มี UID 1000) ดังนั้นการใช้ awk เราสามารถพูดได้ว่ามันแสดงเฉพาะจากบรรทัดนั้นสิ่งที่พบในคอลัมน์ที่ 2 (awk "{พิมพ์ $ 2}"). ซึ่งจะแสดงให้เราเห็นเฉพาะหมายเลขกระบวนการนั่นคือ PID เท่านั้นที่จะปรากฏในเทอร์มินัล
  6. แต่เราไม่ต้องการแสดง PID สิ่งที่เราต้องการคือฆ่ากระบวนการด้วย PID นั้น ... ดังนั้นเราจะทำเช่นนั้นเราส่งผ่านสิ่งที่เรามีจนถึงคำสั่ง ฆ่า และพร้อม (xargs ฆ่า)
  7. xargs หมายถึงอะไร? ... ง่ายๆในกรณีนี้เราไม่สามารถส่งผ่าน PID เพื่อฆ่าด้วยท่อเท่านั้น ( | ) แค่นี้ยังไม่พอ xargs (ที่อนุญาตให้ส่งผ่านค่าหรือข้อมูลแล้วดำเนินการหรือฆ่าพวกมัน) คือสิ่งที่จะทำให้เราทำงานให้เสร็จได้

และนี่ก็จบลง

ใช่ ... ฉันรู้ว่ามันดูซับซ้อนเล็กน้อยซึ่งเป็นเหตุผลว่าทำไมฉันถึงพยายามอธิบายให้ดีที่สุดเท่าที่จะทำได้

ฉันรู้ว่าอาจมีน้อยคนที่ต้องการคำสั่งนี้ แต่วัตถุประสงค์ของบทความนี้ก็เหมือนกับของ DesdeLinuxสอนสิ่งใหม่ๆ ให้พวกเขาทุกวัน พยายามทำให้พวกเขาเลิกกลัว Linux... และโดยส่วนตัวแล้ว ฉันอยากให้พวกเขาเรียนรู้การใช้เทอร์มินัลโดยไม่ต้องกลัว 😉

อย่างไรก็ตามฉันหวังว่าคุณจะพบว่ามันน่าสนใจฉันเรียนรู้วิธีใช้ต่อไป awk ซึ่งยอดเยี่ยมจริงๆฮิฮิ

ความนับถือ


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   เอซิทอค dijo

    เป็นเรื่องจริง awk มีประโยชน์มากสำหรับฉันและฉันคิดว่าใครก็ตามที่ต้องการจัดการไฟล์ข้อความที่มีโครงสร้างขอแนะนำให้รู้วิธีใช้งาน

    ฉันมีคำถาม (ไม่มีส่วนเกี่ยวข้องกับอินพุต: D) คุณสร้างเอฟเฟกต์เบลอนั้น (และโปรแกรมอะไร) เพื่อให้คุณเน้นส่วนหนึ่งของภาพหน้าจอได้อย่างไร

    อาศิรพจน์

    1.    เอซิทอค dijo

      การทดสอบ ถ้าสิ่งนี้มาจากรูปแบบ มันใช้งานได้และถ้าไม่ มีคนบอกฉันว่าต้องทำอย่างไร

      ขอบคุณมาก

    2.    KZKG ^ กาอาระ dijo

      ใช่ ... ตอนนี้ฉันได้ค้นพบลินุกซ์อีกครั้งซึ่งฉันรู้วิธีทำงานกับ awk HAHAHAHA แล้ว
      เกี่ยวกับเอฟเฟกต์และสิ่งนั้นไม่มีอะไร ... มันเป็นแค่ Gimp 😀

      ฉันเลือกส่วนที่ต้องการเน้นตัดด้วย [Ctrl] + [X] แล้ววางเป็นเลเยอร์ใหม่จากนั้นเลือกเลเยอร์ล่าง (ซึ่งเป็นเลเยอร์ที่ฉันต้องการทึบแสง) และไปที่ Filters- » Gaussian (หรืออะไรก็ตามที่คุณเขียน hehe) และ voila
      ตอนนี้เพื่อให้เอฟเฟกต์มืดฉันเพียงสร้างเลเยอร์ใหม่ (พื้นหลังสีขาว) และวางไว้ระหว่างสองสิ่งนี้ที่ฉันมีอยู่แล้วฉันให้มันเป็นสีดำและในแถบโปร่งใส (มุมขวาบน) ฉันย้ายไปที่ ฉันบรรลุผลที่ต้องการ

      ทักทายและขอบคุณสำหรับความคิดเห็น🙂

      1.    Roberto Evolving Santana dijo

        ใหญ่!!

  2.   มานูเอล เด ลา ฟูเอนเต dijo

    หากกระบวนการมาจากโปรแกรมที่มองเห็นได้ไม่มีอะไรสะดวกสบายไปกว่าการพิมพ์ xkill บนคอนโซลคลิกที่โปรแกรมเพื่อฆ่าและ voila

    1.    KZKG ^ กาอาระ dijo

      คลิกที่โปรแกรมเพื่อฆ่า
      เฮ้ใช่ ... สมมติว่าคุณมี GUI ฮิฮิ

      1.    มานูเอล เด ลา ฟูเอนเต dijo

        ถูกต้องนั่นคือเหตุผลที่ฉันพูดว่า "ถ้ากระบวนการมาจากโปรแกรมที่มองเห็นได้"

        1.    วินโดซิโก dijo

          การคลิกปุ่มที่มีเครื่องหมาย "X" จะง่ายกว่า GNOME Shell ยังมีปุ่มนั้นอยู่ใช่ไหม :-D.

          1.    มานูเอล เด ลา ฟูเอนเต dijo

            หากโปรแกรมหยุดทำงาน (ซึ่งเป็นสาเหตุหลักที่ทำให้คุณต้องฆ่ากระบวนการ) มีเหตุผลที่ปุ่มนี้จะไม่ตอบสนองไม่ว่าคุณจะกดมากแค่ไหนก็ตาม

            ฉันคิดว่า GNOME Shell จะลบออกในไม่ช้าเพื่อให้คุณสามารถเห็นความมหัศจรรย์ของการปิดหน้าต่างด้วยการลากไปที่ด้านล่างของหน้าจอเหมือนใน Windows 8 ไม่จำเป็นต้องพูดว่าบนหน้าจอไวด์สกรีนเป็นการออกกำลังกายที่ยอดเยี่ยม

          2.    วินโดซิโก dijo

            ฉันเข้าใจแล้ว. ในกรณีนั้นฉันชอบ Control + Alt + Esc (ใน KDE)

            ฉันแทบรอไม่ไหวที่จะเห็นตัวอย่าง GNOME Shell ใหม่พวกมันเป็นของจริง

  3.   เหมาะสม dijo

    สิ่งนี้เหมือนกัน แต่เขียนน้อยกว่า
    ในกรณีนี้ฉันใช้แผ่นพับเป็นตัวอย่างนั่นคือสาเหตุที่ทำให้ leaf ปรากฏใน grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    ความนับถือ

  4.   Sys dijo

    วุ้ย ลูกชายของฉันลองวิ่ง "pgrep kat" ซึ่งเป็น "pgrep" เพื่ออะไรสักอย่าง

    และเพื่อดำเนินการ "man pgrep" และ "man pidof" ซึ่งบางครั้ง "pidof" สามารถช่วยคุณได้

    และเพื่อรัน« ps aux | grep [k] ที่ "ซึ่งจะไม่ส่งคืน" กระบวนการที่เราเปิดใช้งานสำหรับการกรอง "ที่คุณแสดงความคิดเห็นซึ่งเป็นผลให้คุณประหยัดงาน

    สวัสดี!

    1.    Sys dijo

      โอ้และ "pkill" ซึ่งทำในสิ่งที่คุณกำลังมองหา ตัวอย่างเช่น "pkill kat"

    2.    KZKG ^ กาอาระ dijo

      โอ้น่าสนใจ ... ฉันไม่รู้จัก pgrep 🙂
      ขอบคุณสำหรับเคล็ดลับ😀

      1.    Sys dijo

        ขอบคุณคุณและบทความของคุณ

        โดยวิธีการใน https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ แสดงความคิดเห็นเกี่ยวกับเทคนิคการใช้คำสั่งเช่น« ps aux | grep [n] program_name "พวกเขาอธิบายได้ดีกว่าฉันที่นั่น

        สวัสดี!

        1.    KZKG ^ กาอาระ dijo

          ขอบคุณสำหรับลิงค์😀
          นั่นคือสิ่งที่ดีเกี่ยวกับมันที่มีอยู่ DesdeLinux…ไม่สำคัญว่าคุณจะเป็นผู้ใช้ ผู้แก้ไข หรือผู้ดูแลระบบ เราทุกคนเรียนรู้สิ่งใหม่ๆ อยู่เสมอ 🙂

          ทักทายและขอบคุณเพื่อนอีกครั้ง

  5.   คอสเต dijo

    ขอบคุณทุกคนมากสำหรับเวลาและความทุ่มเททำให้ควรเยี่ยมชมและอ่านเว็บไซต์นี้วันละหลาย ๆ ครั้ง

    ขอบคุณอีกครั้ง.

  6.   นายลินุกซ์ dijo

    KZKG ^ กาอาระเกือบจะเหมือนกันทุกครั้งเมื่อพูดถึงเคล็ดลับประเภทนี้มีอีกคนที่ทำเช่นเดียวกันด้วยคำสั่งง่ายๆ แต่ฉันขอแสดงความยินดีกับเขาเขามักจะมีส่วนร่วมอย่างต่อเนื่อง

    1.    KZKG ^ กาอาระ dijo

      เดี๋ยวก่อน…ฉันรู้วิธีทำ X osa และฉันมาที่นี่และแบ่งปันวิธีการ แต่แล้วพวกเขาก็แบ่งปันวิธีที่ง่ายกว่าในการบรรลุสิ่งเดียวกันฮ่า ๆ ๆ แต่ด้วยสิ่งนี้เราทุกคนชนะใช่มั้ย? 😀

      1.    ทรูโกะ 22 dijo

        ถูกต้อง 0 /

      2.    มานูเอล เด ลา ฟูเอนเต dijo

        ฮ่าฮ่าฮ่าคุณมักจะคิดวิธีที่ซับซ้อนที่สุด 😀

        1.    KZKG ^ กาอาระ dijo

          ใช่ฉันคิดมาตลอดว่า: «ถ้าฉันรู้วิธีทำวิธีที่ยากฉันจะรู้วิธีเรียนรู้วิธีง่ายๆโดยไม่มีปัญหา»และ ... ในทางกลับกันมันใช้ไม่ได้เหมือนเดิมฮ่า ๆ ๆ

  7.   ออสการ์ dijo

    ปัญหาจะเกิดขึ้นถ้าเรามีสองกระบวนการที่มีชื่อคล้ายกัน
    ตัวอย่างเช่นกระบวนการของเคทและอีกกระบวนการหนึ่งของ ... mmm ... สมมติว่า kater xD
    ด้วยคำสั่งเช่นนี้เราจะฆ่าทั้งสองคนใช่ไหม?

    1.    KZKG ^ กาอาระ dijo

      ใช่มันจะเกิดขึ้น🙂

  8.   ทรูโกะ 22 dijo

    TT เคทผู้น่าสงสาร ฉันใช้คือ xkill ใน KDE ซึ่งเปิดใช้งานอย่างรวดเร็วด้วย "ctrl + alt + esc" หรือด้วย "ctrl + Esc" เปิด "กิจกรรมระบบ" และทำแบบกราฟิก ตอนนี้ต้องเรียนรู้ขั้นตอนนี้ผ่านเทอร์มินัลแม้ว่าฉันจะมีเซิร์ฟเวอร์ภายในบ้านที่มีเดเบียนที่เสถียรและไม่หยุดทำงานเลย

  9.   Yulian dijo

    เยี่ยมมาก! ตอนนี้ฉันกำลังเรียนหลักสูตรเกี่ยวกับระบบปฏิบัติการและฉันต้องทำงานกับเทอร์มินัลบทช่วยสอนของคุณเป็นตัวช่วยที่ดีมาก! ขอบคุณ

  10.   ปาโบล dijo

    อธิบายได้ดีเยี่ยมมากสำหรับบล็อกที่ฉันเพิ่งพบฉันชี้ไปที่รายการโปรด ขอขอบคุณ.

  11.   ไม่ช้า dijo

    มันก็ดีแม้ว่าจะมีบางครั้งที่พวกมันฆ่าไม่ได้….

  12.   เอาใจช่วย dijo

    พิคล์ -9

    1.    เอาใจช่วย dijo

      pkill -9 "ชื่อกระบวนการ"
      ในความคิดเห็นก่อนหน้านี้ฉันใส่«» แต่มันไม่ออกมา xD

  13.   ดีที่สุด dijo

    ราตรีสวัสดิ์ฉันมีเวลาอ่านฟีดของคุณและวันนี้ฉันตัดสินใจลองคำสั่งนี้ ps ax | grep chrome | grep -v grep | awk '{print $ 1}' | xargs kill และฉันได้รับข้อผิดพลาดในการฆ่าต่อไปนี้: ไม่พบกระบวนการ "?" ด้วยประสบการณ์เล็กน้อยที่ฉันมีในการทุบตีฉันตัดสินใจที่จะทำการปรับเปลี่ยนบางอย่างและในที่สุดฉันก็เหลือ ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill เนื่องจาก ps -A ถูกใช้เพื่อแสดงกระบวนการทั้งหมดในรูปแบบสรุปและความผิดปกติที่สองคือมันโยน TTY «? » และมันได้ผลสำหรับฉันขอบคุณมากฉันชอบบล็อกของคุณคำทักทาย

  14.   ไมเคิล dijo

    ขอบคุณเปรียบเทียบคุณไม่สามารถจินตนาการถึงปัญหาที่คุณเพิ่งแก้ไขให้ฉันด้วยคำสั่งนี้

    ทักทาย!

  15.   อีเมล dijo

    ขอบคุณ !!!!

  16.   อาร์ตูโร dijo

    โพสต์ที่ยอดเยี่ยม สิ่งที่ฉันกำลังมองหาและไม่รู้ว่าจะทำอย่างไรและคำอธิบายก็ดีมาก

    อาศิรพจน์