Curl 重新启动freebsd/freenas后无法从tcl(eggdrop bot)卷曲

Curl 重新启动freebsd/freenas后无法从tcl(eggdrop bot)卷曲,curl,cron,tcl,eggdrop,Curl,Cron,Tcl,Eggdrop,我正在运行一个freenas监狱环境,它运行一些eggdrop脚本。 其中一个脚本在某个点执行命令(在tcl中): 所以它会下载一个文件。 当我设置这个时,一切都很好,但是在监狱重新启动后(甚至不是主服务器,只是监狱) 我得到以下错误: Tcl error [::bc::onEncryptedText]: couldn't execute "curl": no such file or directory 我确保eggdrop的目录都是chmoded到0777的,并且所有路径都是正确的 问题只

我正在运行一个freenas监狱环境,它运行一些eggdrop脚本。 其中一个脚本在某个点执行命令(在tcl中):

所以它会下载一个文件。 当我设置这个时,一切都很好,但是在监狱重新启动后(甚至不是主服务器,只是监狱)

我得到以下错误:

Tcl error [::bc::onEncryptedText]: couldn't execute "curl": no such file or directory
我确保eggdrop的目录都是chmoded到0777的,并且所有路径都是正确的

问题只有在监狱重新启动后才会出现,有人知道问题是什么吗


任何帮助都将不胜感激。

好的,问题似乎是eggdrop的“botchk”cronjob文件。它看起来与freebsd不兼容


我将研究在引导时启动bot的其他方法。我现在正在手动启动eggdrop,问题似乎已经解决。

运行bot的主机上没有安装
curl
,或者它不在路径上。由于cron任务的运行路径大大减少(出于各种原因,包括安全性),因此您必须在脚本中设置路径或使用全名
curl
。两者都很容易

要在脚本中设置路径,请在终端中使用
echo$PATH
,查看工作时的路径,然后在脚本中执行此操作(最好很早):

要硬编码
curl
的位置,请在终端中使用
哪个curl
来查找它,然后在脚本中使用该值,如下所示:

set nfoc [exec /usr/local/bin/curl -m 10 -s -f -k -3 --connect-timeout 3 -L "$url" -o "/tmp/$filename"]
哪一个最好?如果您从多个位置调用
curl
,设置路径可能会容易得多,但是如果您只在一个位置调用它,那么硬编码位置是一个非常容易的解决方案

set ::env(PATH) "/the/path/you/found/earlier/for/example:/usr/local/bin:/bin:/usr/bin"
set nfoc [exec /usr/local/bin/curl -m 10 -s -f -k -3 --connect-timeout 3 -L "$url" -o "/tmp/$filename"]