服務停止工作 - 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)。每個文件的最頂部都有以下三行:

#!/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一定要在你的$PATHfor中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

相關內容