Убивает ли pkill себя (и его родительские процессы) последним?

Чтобы решить мою конкретную проблему (LD_LIBRARY_PATH), проще всего добавить содержимое переменной в файл в /etc/ld.so.conf.d. Например, я создал /etc/ld.so.conf.d/hdp.conf с содержимым:

/usr/java/jdk1.8.0_66/jre/lib/amd64/server
/usr/hdp/2.5.0.0-1245/usr/lib

После запуска один раз ldconfig от имени root, этот новый 'ld_library_path' доступен по всей системе.

Чтобы ответить на вопрос о переменных окружения в целом, лучше всего подойдет ответ от @meuh.

1
19.06.2016, 13:47
2 ответа

pkill никогда не убивает себя, как и pgrep nerver записывает себя; pkill выполняет выход из после завершения каждого процесса, соответствующего критериям, кроме самого себя. pkill действительно уничтожает своих родителей, если они соответствуют критериям, но если родитель является оболочкой, если вы не используете непреодолимый сигнал (обычно только -9, также известный как - [SIG] KILL), оболочка обычно игнорирует это. Если он включает ваш sshd , он действительно убьет ваш сеанс, а вместе с ним и вашу оболочку и (большинство?) Других процессов, что обычно нежелательно.

Вы можете использовать pgrep , чтобы найти процессы, возможно, с помощью -l или -lf , и выполнить дополнительные проверки прежде чем убить их.

5
27.01.2020, 23:35

Кажется, что с pkill из procps -ng, pkill -fМОЖЕТ сопоставить свою собственную командную строку и убить себя, в то время как BSD pkillв macOS, похоже, этого не делает.(Я тестировал "pkill from procps -ng 3.3.17")

См. linux -Предотвратить самоуничтожение процесса с помощью pkill -Переполнение стека , чтобы узнать, как этого избежать.

2
08.09.2021, 15:39

Теги

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