Вбийте процес однією командою

Багато разів нам потрібно вбити процес через термінал. Якщо ми знаємо повну назву процесу (Наприклад: Кейт) у нас немає проблем, простий:

killall kate

Це вирішує проблему для нас ... але що станеться, якщо ми не знаємо точної назви процесу?

У цих випадках нам доводиться перераховувати всі процеси за допомогою ps aux як показано на наступному скріншоті:


Тоді знайдіть PID процесу, який у цьому випадку ми шукаємо PID Кейт:


Тоді виконайте:

kill 3808

І вуаля, там ми вбиваємо процес.

Ну ... в одному рядку ми можемо шукати процес (не знаючи повного імені), дізнатися його PID, а також вбити його:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Як ти бачиш:

  1. Перелічимо процеси (ps aux)
  2. Ми не знаємо повної або точної назви Кейт (привіт, це може бути редактор kate або щось подібне), тому ми фільтруємо лише за Kat (grep kat)
  3. Але ми отримаємо два процеси, пов’язані з kat, якщо ми будемо використовувати лише цей фільтр, один - це процес kate, а інший - процес, який ми активуємо для фільтрації, я залишаю вам скріншот, щоб ви могли закінчити розуміння: (Зверніть увагу, що існує 2 рядки, тобто 2 процеси)

  4. Щоб уникнути попереднього пояснення, ми робимо ще один фільтр (grep -v grep). Що ми будемо робити навпаки ... якщо ми фільтруємо за допомогою grep, він відображатиме лише збіги з фільтром, ну і grep -v Ми вказуємо вам НЕ показувати матчі, а показувати те, що не відповідає. Я покажу вам скріншот, яким би був результат до цього часу: (Зверніть увагу, що зараз з’являється лише процес Кейт)

  5. Ну, у нас вже є процес, який ми хочемо вбити ізольовано, тепер нам потрібно лише витягнути його PID, який є другим числом, тобто 4062. І PID знаходиться у 2-й колонці (Перший стовпець містить користувача з UID 1), тому, використовуючи awk, ми можемо сказати, що з цього рядка він показує лише те, що він знаходить у 2-му стовпці (awk '{print $ 2}'). Що б показало нам лише номер процесу, тобто в терміналі з’явиться лише PID.
  6. Але ми не хочемо показувати PID, ми хочемо вбити процес за допомогою цього PID ... так що ми зробимо це, передамо те, що ми маємо, команді вбивати і готовий (ксарги вбивають)
  7. Що означає цей ксарг? ... просто, в цьому випадку ми не можемо передати PID, щоб убити лише трубами ( | ), цього просто недостатньо, тому xargs (що дозволяє передавати значення або дані, а потім виконувати або вбивати їх) - це те, що дозволить нам закінчити роботу.

І на цьому це закінчується 😀

Так ... Я знаю, що це здається дещо складним, і саме тому я намагався пояснити це наскільки міг.

Я знаю, що, можливо, ця команда мало кому знадобиться, але мета цієї статті така ж, як і мета DesdeLinux, навчати їх чогось нового щодня, завжди намагаючись змусити їх позбутися страху перед Linux... і особисто я б хотів, щоб вони навчилися користуватися терміналом без страху 😉

У будь-якому випадку ... Сподіваюся, вам це було цікаво, я продовжую вчитися користуватися awk що справді чудово хе-хе.

привіт


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   езіток - сказав він

    Це правда, awk був для мене дуже корисним, і я думаю, що всім, кому потрібно маніпулювати структурованими текстовими файлами, настійно рекомендується знати, як ним користуватися.

    У мене просто запитання (нічого спільного з введенням: D), як (і з якою програмою) ви зробили ефект розмиття, що дозволяє виділити частину знімка екрана?

    Привіт.

    1.    езіток - сказав він

      Тестування якщо це з формату це працює, а якщо ні хтось підкаже, як це зробити

      Велике спасибі.

    2.    KZKG ^ Гаара - сказав він

      Ну так ... Я перевідкрив Linux тепер, коли я знаю, як працювати з awk HAHAHAHA.
      Про ефект і таке, нічого ... це просто Gimp 😀

      Я вибираю частину, яку хочу виділити, вирізаю її за допомогою [Ctrl] + [X] і вставляю як новий шар, потім вибираю нижній шар (саме той, який я хочу замазувати) і переходжу до Фільтри- » Гаусса (або що завгодно ти пишеш хе-хе) і вуаля.
      Тепер, щоб надати йому темний ефект, я просто створюю новий шар (білий фон) і поміщаю його між цими двома, що вже були у мене, надаю йому чорний колір і на панелі прозорості (верхній правий кут) переміщую туди, де Я досягаю бажаного ефекту.

      Вітаю та дякую за коментар 🙂

      1.    Роберто Еволюціонує Сантана - сказав він

        Великий !!

  2.   Мануель де ла Фуенте - сказав він

    Якщо процес відбувається з видимої програми, нічого зручнішого, ніж друкувати xkill на консолі натисніть на програму для вбивства і вуаля.

    1.    KZKG ^ Гаара - сказав він

      натисніть на програму, щоб вбити
      хе-хе так ... це за умови, що у вас графічний інтерфейс Хе-хе.

      1.    Мануель де ла Фуенте - сказав він

        Правильно, саме тому я сказав "якщо процес йде від видимої програми".

        1.    Віндузіко - сказав він

          Простіше натиснути на кнопку з "Х". У GNOME Shell ця кнопка ще є? :-D.

          1.    Мануель де ла Фуенте - сказав він

            Якщо програма заморожена (що є основною причиною того, чому вам потрібно було б убити її процес), логічно, що ця кнопка не буде реагувати незалежно від того, скільки ви її натискаєте.

            Гадаю, GNOME Shell найближчим часом видалить його, щоб ви могли побачити тактильне диво закриття вікон, перетягнувши їх у нижню частину екрана, як у Windows 8. Само собою зрозуміло, на широкоформатних моніторах це фантастична вправа.

          2.    Віндузіко - сказав він

            Тепер я розумію. У цьому випадку я віддаю перевагу Control + Alt + Esc (у KDE).

            Я не можу дочекатися перегляду нових попередніх переглядів GNOME Shell, вони справжнє задоволення.

  3.   правильний - сказав він

    Це робить те саме, але менше пише.
    У цьому випадку я взяв для прикладу листову панель, тому лист з'являється у grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    привіт

  4.   Sys - сказав він

    Фу! Мій сину, спробуй запустити "pgrep kat", що для чогось є "pgrep".

    І виконати "man pgrep". І "людина підоф", яка іноді "підоф" може вам допомогти.

    І виконати «ps aux | grep [k] at ", який не поверне" процес, який ми активуємо для фільтрації ", який ви коментуєте, що заощаджує вашу роботу.

    Привіт!

    1.    Sys - сказав він

      О, і "pkill", який робить те, що ви шукаєте. Наприклад: "pkill kat".

    2.    KZKG ^ Гаара - сказав він

      О, цікаво ... я не знав pgrep 🙂
      Дякую за підказку 😀

      1.    Sys - сказав він

        Дякую вам і вашим статтям.

        До речі, в 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 ^ Гаара - сказав він

          Дякую за посилання 😀
          Це чудова річ у тому, що він існує. DesdeLinux…не має значення, хто ви – користувач, редактор чи адміністратор, ми всі завжди дізнаємось щось нове 🙂

          Вітаю і ще раз дякую друже.

  5.   косте - сказав він

    Дякуємо всім за ваш час та відданість, тому варто відвідувати та читати цей сайт кілька разів на день.

    Знову дякую.

  6.   Містер Linux. - сказав він

    KZKG ^ Гаара майже завжди однаковий, коли мова заходить про подібні поради, є інша людина, яка робить те саме за допомогою простої команди. Але я вітаю його, він завжди постійно робить свій внесок.

    1.    KZKG ^ Гаара - сказав він

      хе-хе ... я знаю, як робити X osa, і я приходжу сюди і ділюсь методом, але тоді вони поділяють більш простий спосіб досягти того самого, ха-ха-ха, але з цим ми всі виграємо, так? 😀

      1.    truko22 - сказав він

        Правильно 0 /

      2.    Мануель де ла Фуенте - сказав він

        Ха-ха-ха, ти завжди йдеш найскладнішим шляхом. 😀

        1.    KZKG ^ Гаара - сказав він

          HAHAHA так, я завжди думав: «Якщо я знаю, як це зробити важчим способом, то я буду знати, як зробити це простим способом без проблем.»І ... навпаки, це не працює однаково ха-ха-ха.

  7.   Оскар - сказав він

    Проблема полягала б у тому, що ми маємо два процеси з подібною назвою.
    Наприклад, процес Кейт, а інший процес ... ммм ... припустимо, kater xD
    За такою командою ми вбили б обох, так?

    1.    KZKG ^ Гаара - сказав він

      Ну так, це могло б статися 🙂

  8.   truko22 - сказав він

    ТТ бідна Кейт. Я використовую xkill в KDE, він швидко запускається за допомогою "ctrl + alt + esc" або також за допомогою "ctrl + Esc" відкриває "Системні дії" і робить це графічно. Тепер цю процедуру через термінал треба вивчити, хоча я маю домашній сервер зі стабільним debian, і він взагалі не зависає.

  9.   Юліан - сказав він

    Чудово! саме зараз, коли я проходжу курс операційних систем і мені потрібно виконувати завдання за допомогою терміналу, ваш підручник був великою підмогою! Дякую

  10.   Пабло - сказав він

    Дуже добре пояснив, чудовий блог, який я щойно зустрів, я вказую його на обране Дякую.

  11.   Скоро - сказав він

    Ну, це добре, хоча бувають випадки, коли їх неможливо вбити ....

  12.   Дкой - сказав він

    pkill -9

    1.    Дкой - сказав він

      pkill -9 "назва процесу"
      у попередньому коментарі я поставив «», але це не вийшло xD

  13.   найкраще - сказав він

    на добраніч, я встигаю прочитати твою стрічку, і сьогодні я вирішив спробувати цю команду ps ax | grep хром | grep -v grep | awk '{print $ 1}' | | xargs kill, і я отримую таку помилку вбивства: не вдається знайти процес "?" маючи невеликий досвід роботи з bash, я вирішив внести деякі зміни, і врешті-решт я залишив ps -A | grep c | grep -v grep | awk '{print $ 1}' | | xargs kill, оскільки ps -A використовується для узагальненого відображення всіх процесів, а друга аномалія полягала в тому, що він кинув мені TTY «?» і це спрацювало для мене, дуже дякую. Мені дуже подобається ваш блог, вітаю

  14.   Майкл - сказав він

    Дякую, компа, ти не уявляєш обсягу проблем, які ти щойно вирішив для мене цією командою.

    Привіт!

  15.   емалуг - сказав він

    ДЯКУЮ !!!!

  16.   Артур - сказав він

    Відмінний пост. Тільки те, що я шукав і не знав, як це зробити, і пояснення було дуже хорошим.

    Привіт.