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

时间:2015-11-22 22:48:06

标签: linux bash shell ubuntu

我正在运行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 &``

任何线索?

0 个答案:

没有答案