サービスが動作を停止しました - exec: tclsh: 見つかりません

サービスが動作を停止しました - exec: tclsh: 見つかりません

私は Ubuntu 16.04 で Security Onion を実行しています。いくつかの主要なサービス (SGUIL、PCAP、Snort) が昨日、2019 年 6 月 9 日に動作を停止しました。これらの各サービスのログに次のエントリが見つかりました。

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

次のログに上記のメッセージが表示されます。

pcap_agent.log
snort_agent.log
squild.log

上記の各ログは、/usr/bin ディレクトリ内の関連する .tcl ファイル (つまり、pcap_agent.tcl、snort_agent.tcl、および sguild) を参照します。これらの各ファイルには、ファイルの先頭に次の 3 行があります。

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

あるフォーラム ページでは、tcl のバージョンが古いため、sudo apt-get install tclコマンドを使用して更新する必要があると説明されていました。しかし、そのコマンドを実行して更新すると、tcl はすでに最新バージョン (8.6.0+9) であると表示されます。

.tcl ファイルに触れるのは今回が初めてなので、その場で調査/学習しており、インターネットやフォーラムなどでこのエラーを徹底的に調査しましたが、まだ役立つ情報は見つかっていません。

どなたか助けていただける方はいらっしゃいませんか? これは私たちの生産マシンに影響を与えているので、これを修正する必要があります。必要であればログ ファイルなどを提供できます。

よろしくお願いします、ジェフ・S.

答え1

このexec tclshフラグメントは、環境変数内の各ディレクトリで$SHELLを探すように指示します。 を調べます: tclsh$PATH$PATH

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

tclshは なので/usr/bin/tclsh、それを見つけるには/usr/binである必要があります。$PATHexec 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

関連情報