Centos – фоновые процессы

У меня есть машина, где запуск tcpdump на интерфейсе Wi-Fi требует привилегий sudo. Так что, если я запускаю фоновую работу, как,

sudo tcpdump -i wlp8s0 'port 80' & 

(Я знаю, что делать это бессмысленно, так как я не получаю никаких результатов, но давайте рассмотрим это)

Таким образом, фоновый процесс, который запускается с областью без полномочий пользователя, когда я должен убить его, я обычно делаю,

kill% 1 ### 1 – номер фонового задания

но это говорит, операция не допускается.

Итак, я делаю,

sudo kill% 1

но это работает так, как будто он должен убить фоновое задание, запущенное пользователем root (что не так).

Я должен был на самом деле получить идентификатор процесса задания и убить его этим.

Любая идея о том, как начать задание в области sudo с пользователем без полномочий root и завершить его обычным способом вместо того, чтобы жестоко его убить?

One Solution collect form web for “Centos – фоновые процессы”

Вы можете использовать

 sudo kill "$!" 

убить самую последнюю запущенную фоновую работу.

Было бы еще проще, если бы вы начали работу с

 sudo tcpdump ... & pid="$!" 

затем

 sudo kill "$pid" 

убил бы конкретную работу.

Сам процесс sudo запускается как вы, но он передает все сигналы дочернему процессу (в данном случае tcpdump ), что означает, что вам нужно будет иметь соответствующие разрешения, чтобы сигнализировать о его уничтожении.

Из руководства sudo (в системе Ubuntu):

Если подключаемый модуль ведения журнала ввода-вывода настроен или если политика безопасности явно запрашивает его, создается новый псевдотерминал («pty»), а второй процесс sudo используется для передачи сигналов управления заданиями между существующим pty пользователя и новым pty команда запускается. Этот дополнительный процесс позволяет, например, приостановить и возобновить команду.

[…]

Когда команда запускается как дочерний элемент процесса sudo, sudo будет передавать полученные сигналы команде. Сигналы SIGINT и SIGQUIT передаются только тогда, когда команда выполняется в новом pty или когда сигнал был отправлен пользовательским процессом, а не kernelм.

  • «ALL ALL = (ALL) NOPASSWD: ALL» было автоматически добавлено в мой файл / etc / sudoers. Это нарушение безопасности?
  • Ubuntu bash echo «ПАРОЛЬ $» | sudo -S WID = $ (cat / var / lib / FILE)
  • приглашение sudo не позволяет мне отправить мой пароль sudo
  • Interesting Posts

    Файл не найден (cygwin в Windows)

    Невозможно распаковать файл после ошибки tar

    Почему все прошло очень мало?

    Как я могу заставить mutt автоматически выбирать pgp-ключи?

    Минимизация задержки отображения. Графический программный стек? Приоритет процесса? RTOS?

    Шифровать корневую файловую систему и расшифровать с помощью U-Boot с ключом, хранящимся в FPGA

    Функции Bash, что-то странное происходит!

    Почему rsyslog только бесконечно рекурсивно при прослушивании по UDP?

    Как передать аргументы perl при попытке изменить строку?

    getopt, getopts или ручной синтаксический анализ – что использовать, когда я хочу поддерживать как короткие, так и длинные варианты?

    Как спать до определенной даты и времени?

    / dev / mapper и порочный виджет ввода-вывода

    Как поддерживать 64-битные времена на 32-битной платформе Linux

    При перемещении текста текст перемешался

    Доступ к результатам трубы как переменной?

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