gpt4 book ai didi

linux - Ubuntu:在启动时使用 args 启动 shell 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:55 24 4
gpt4 key购买 nike

我正在运行 Ubuntu Server 14.04,我正在尝试让一个 shell 脚本在启动时运行。问题是脚本需要 args,其中一个是文件(数据库),另一个是与脚本位于同一文件夹中的端口号。我对此很陌生。

例如,当我进入终端中的文件夹时,我可以输入:

sh script.sh potato 1234

script.sh 是脚本,potato 是文件名,1234 是端口号。当我手动执行时工作正常。

我试过添加一个crontab,@reboot script.sh potato 1234,当然不行,找不到脚本。

所以我尝试了:

 @reboot */path/to/my/script.sh* potato 1234

再次,没有工作。以为找不到数据库。

所以我尝试了:

@reboot path/to/my/script.sh /path/to/my/potato 1234

仍然没有骰子。

我也试过用路径运行它

sh path/to/my/script.sh potato 1234

当然失败了 - 脚本启动并告诉我它找不到数据库,这是应该的。

sh/path/to/my/script.sh/path/to/my/potato 1234 没有返回错误,但也没有启动。

这就是我要启动的脚本的样子:

if [ $# -lt 1 -o $# -gt 2 ]; then
echo 'Usage: restart dbase-prefix [port]'
exit 1
fi

if [ ! -r $1.db ]; then
echo "Unknown database: $1.db"
exit 1
fi

if [ -r $1.db.new ]; then
mv $1.db $1.db.old
mv $1.db.new $1.db
rm -f $1.db.old.Z
compress $1.db.old &
fi

if [ -f $1.log ]; then
cat $1.log >> $1.log.old
rm $1.log
fi

echo `date`: RESTARTED >> $1.log
nohup ./moo $1.db $1.db.new $2 >> $1.log 2>&1 &``

有什么线索吗?

最佳答案

您需要查看程序的输出。 cron 将输出邮寄给 crontab 的所有者或在 crontab 之上的 MAILTO 环境变量中指定的地址。

注意执行环境。通常,大多数基本环境变量(PATHHOME 等)不会被设置,并可能导致执行错误。

有关详细信息,请参阅 cron 手册页:

man 5 crontab

这些帖子也可能对您有所帮助:

关于linux - Ubuntu:在启动时使用 args 启动 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com