Пропустить флаги для xargs

Я хочу убить кучу процессов, используя эту команду:

sudo ps ax | grep node | awk '{print $1}' | xargs kill 

Но это дает мне операцию, которую нельзя разрешить даже с судо.

Затем я попытался с kill -9 индивидуально для каждого процесса, и он сработал.

Теперь мой вопрос: как я могу передать флаг -9 для уничтожения через xargs?

Пустота xargs kill -9 или xargs -9 kill работали для меня.

  • Xargs во вторую сторону трубы?
  • Как мне перебирать строки в STDIN и запускать команду оболочки?
  • Что делает xargs, если он используется без каких-либо параметров?
  • find: несколько `-exec` с условиями
  • Используйте команду find для выполнения ряда команд
  • Почему эта труба не заканчивается, когда процесс las умирает (зомби)?
  • xargs git: пропустить ввод пользователя
  • Неверное поведение xargs
  • 2 Solutions collect form web for “Пропустить флаги для xargs”

    Только первая команда в этом конвейере ( ps ax ) запускается как root. Остальная часть строки (включая команду kill ) запускается как ваш обычный пользователь без полномочий root.

    Чтобы запустить kill как root, вам нужно запустить его следующим образом:

     ps ax | grep node | awk '{print $1}' | sudo xargs kill -9 

    или

     ps ax | grep node | awk '{print $1}' | xargs sudo kill -9 

    альтернативно, если у вас установлен pkill , вы можете запустить:

     sudo pkill -9 node 

    Вам нужно sudo на убийстве.

    ps ax | grep node | awk '{print $1}' | xargs sudo kill -9

    Linux и Unix - лучшая ОС в мире.