Запуск одного исполняемого файла с помощью sudo добавляет два процесса в список процессов

Я написал программу, которая захватывает пакеты из сетевого интерфейса. Когда он прослушивает сетевой адаптер, мне нужно запустить его с помощью sudo. Вопрос: почему, когда я запускаю его, добавляет ли он два процесса в список процессов?

Примечание: lwdpi - моя программа

Перед исполнением:

[ f1]

Список процессов во время выполнения:

ghasemi@ghasemi-MS-7693:~/Desktop/lwdpi_cpp$ ps ax | grep lwdpi
 4685 pts/22   S+     0:00 sudo ./lwdpi -i enp5s0
 4686 pts/22   S+     0:00 ./lwdpi -i enp5s0
 4691 pts/21   S+     0:00 grep --color=auto lwdpi
ghasemi@ghasemi-MS-7693:~/Desktop/lwdpi_cpp$ 

Как вы видите выше, после выполнения в список процессов добавляются процессы с PID = 4685 и PID = 4686. Зачем? Я не называл свою программу внутри нее!

1
задан 26 October 2016 в 11:09

1 ответ

Это происходит, когда вы начинаете любой процесс с помощью sudo. Один процесс - это программа sudo, а другая - программа, запущенная с помощью sudo, которая является дочерним процессом первого. Программа sudo выйдет только тогда, когда завершится процесс, в котором он запущен (его дочерний элемент). Вот выдержка из моего pstree при запуске sudo apt update

    ├─mate-terminal─┬
                    ├─bash───sudo───apt
               child of bash--^      ^--child of sudo
6
ответ дан 23 May 2018 в 04:49

Другие вопросы по тегам:

Похожие вопросы: