Единственный способ, с помощью которого данный сценарий может завершить сеанс оболочки (и, следовательно, терминал ), заключается в том, что вы используете сценарий (для установки функции installZook
в текущем сеансе оболочки ). ], а затем запустить функцию в оболочке.
Если то, что вы показываете, является лишь частью более крупного скрипта, содержащего вызов функции installZook
, то эта функция может вызвать завершение работы терминала только в том случае, если скрипт является источником , но а не через запуск обычного сценария оболочки.
exit
завершает текущий сеанс оболочки. Когда функция выполняется exit
, она завершает работу оболочки, вызвавшей ее.
return
возвращается из функции (или исходного файла сценария ). Если бы функция вместо exit
использовала return
, она вернула бы управление вызывающей среде (, возможно, интерактивной оболочке, из которой вы вызвали функцию из ), не выходя из нее.
Если вы вручную запускаете функцию installZook
из оболочки, все, что вам нужно сделать, это изменить exit
на return
. Если в вашем скрипте есть другой фрагмент кода, который вызывает функцию (и который вы не показываете ), тогда этот фрагмент кода должен дополнительно реагировать на статус возврата функции.
Например
installZook || return
Если бы это не было частью какой-либо функции в сценарии, и если бы вы использовали источник сценария, он вернул бы управление оболочке, если функция вернула не -нулевой код выхода.
По умолчанию inetutils*
он не установлен в Debian или Ubuntu.
Альтернативой inetd
может бытьxinetd
или rlinetd
. как говорится в определении пакета:replacement for inetd with many enhancements
rsyslog
предоставитьrsyslogd
(/usr/sbin/rsyslogd
)
rsyslog
поставляется с rsyslog.service
, он включен по умолчанию.
Чтобы ответить на комментарий :
bsdutils
предоставитьlogger
(/usr/bin/logger
)
openbsd-inetd
предоставить inetd
.