Это kill -- -"$pgid"
, то есть это должен быть процесс группы id. kill -- -"$$"
будет работать только в том случае, если оболочка была лидером группы процессов, чего не происходит при запуске с sudo
из интерактивной оболочки:
$ sudo bash -c 'ps -j; exit'
PID PGID SID TTY TIME CMD
26786 26786 29719 pts/39 00:00:00 sudo
26794 26786 29719 pts/39 00:00:00 bash
26795 26786 29719 pts/39 00:00:00 ps
sudo
является лидером группы процессов, а не bash
.
Итак, вам нужно сделать kill -- -"$(ps -o pgid= -p "$$")"
или просто:
kill 0
Это команда для уничтожения собственной группы процессов.
В любом случае, это допустимо только в том случае, если ваш скрипт вызывается сам по себе из интерактивной оболочки (, которая выполняет управление заданиями ).
Также отметим, что в:
(the-script; echo "$?")
или:
the-script | cmd
Подоболочка в первом случае или cmd
является вторым, также помещаются в ту же группу процессов, поэтому она также будет уничтожена этим kill 0
.
Для CentOS 7 требуется Python 2.7, и он будет по-прежнему поддерживаться с помощью исправлений безопасности от RedHat, RedHat будет поддерживать Python2 на протяжении части жизненного цикла RedHat/CentOS 8 , пока CentOS 7 не выйдет из эксплуатации в 2024.
CentOS 7 поддерживает установку более новых версий Python вместе с версией по умолчанию, (просмотрите коллекции программного обеспечения CentOS, yum install centos-release-scl
), но вы не можете заменить или удалить Python 2.7 из вашей системы, не нарушив работу.
Вы можете использовать CentOS 8, которая по умолчанию использует Python 3.6, но в настоящее время также доступна версия Python 2.7.