我正在运行Ubuntu Server 14.04而我正试图让shell脚本在启动时运行。问题是脚本需要args,其中一个是文件(数据库),另一个是与脚本位于同一文件夹中的端口号。我对此很新。
例如,当我进入终端的文件夹时,我可以输入:
sh script.sh potato 1234
script.sh是脚本,potato是文件名, 1234 是端口号。我手动操作时工作正常。
我尝试添加一个crontab,@ redboot script.sh马铃薯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 &``
任何线索?