Службы перестали работать - exec: tclsh: не найдено

Службы перестали работать - exec: tclsh: не найдено

Я использую Security Onion на Ubuntu 16.04. Несколько основных служб (SGUIL, PCAP, Snort) перестали работать вчера, 6/9/2019. В журналах каждой из этих служб я нахожу следующую запись:

/usr/bin/{service name}_agent.tcl:  line 3:  exec:  tclsh:  not found

Я вижу указанное выше сообщение в следующих журналах:

pcap_agent.log
snort_agent.log
squild.log

Каждый из приведенных выше журналов ссылается на связанный файл .tcl в каталоге /usr/bin (т.е. pcap_agent.tcl, snort_agent.tcl и sguild). Каждый из этих файлов имеет следующие три строки в самом верху файла:

#!/bin/sh
# Run tcl from users PATH \
exec tclsh "$0" "$@"

Я нашел одну страницу форума, которая предположила, что версия tcl устарела и ее нужно обновить с помощью sudo apt-get install tclкоманды. Однако, когда я запускаю эту команду для обновления, она сообщает, что tcl уже находится на последней версии (8.6.0+9).

Это мой первый опыт работы с файлами .tcl, поэтому я изучаю/учусь на ходу. Я тщательно изучил эту ошибку в Интернете, на форумах и т. д., но пока не нашел ничего полезного.

Есть ли кто-нибудь, кто может мне помочь? Это влияет на нашу производственную машину, и мне нужно это исправить. Я могу предоставить файлы журналов и т. д., если нужно.

Заранее благодарю, Джефф С.

решение1

Фрагмент exec tclshговорит вам $SHELLискать tclshв каждом из каталогов в вашей $PATHпеременной среды. Проверьте ваш $PATH:

echo "$PATH" | tr ":" "\n"

tclshесть /usr/bin/tclsh, поэтому /usr/binдолжно быть в вашем $PATHдля, exec tclshчтобы найти его.

tclshв tclупаковке:

walt@fox:~(0)$ type -p tclsh
/usr/bin/tclsh
walt@fox:~(0)$ dpkg -S $(type -p tclsh)
tcl: /usr/bin/tclsh
walt@fox:~(0)$ dpkg -L tcl
/.
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/doc
/usr/share/doc/tcl
/usr/share/doc/tcl/README.Debian
/usr/share/doc/tcl/changelog.gz
/usr/share/doc/tcl/copyright
/usr/share/man
/usr/share/man/man1
/usr/bin
/usr/share/man/man1/tclsh.1.gz
/usr/bin/tclsh

Вы можете переустановить tclпакет с помощью:

sudo apt-get install --reinstall tcl

Связанный контент