Я запускаю Ubuntu Server 14.04, и я пытаюсь запустить скрипт оболочки при загрузке. Проблема заключается в том, что для скрипта требуются args, один из которых - это файл (база данных), а другой - номер порта, который находится в той же папке, что и скрипт. Я довольно новичок в этом.Ubuntu: запуск скрипта оболочки с помощью args при загрузке
Когда я иду в папку в терминале, например, я могу напечатать:
sh script.sh potato 1234
script.sh является сценарий, картофель является имя файла, и номер порта. Хорошо работает, когда я делаю это вручную.
Я попытался добавить 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 &``
Любые подсказки?
Выполнить 'ш -х/path/to/my/script.sh/path/to/my/potato 1234' и посмотреть, что вы получаете как команды, которые выполняются? Где он останавливается/терпит неудачу? –
Спасибо, что посмотрели! Это: '+ [2 -lt 1 -o 2 -gt 2] + [! -r/path/to/my/картофель.db] + [-r /path/to/my/potato.db.new] + mv /path/to/my/potato.db /path/to/my/potato.db.old + mv/path /to/my/potato.db.new /path/to/my/potato.db.db + rm -f /path/to/my/potato.db.old.Z + [-f/path/to /my/potato.log] + cat /path/to/my/potato.log + rm /path/to/my/potato.log + compress /path/to/my/potato.db.old /path/to/my/script.sh: 32: /path/to/my/script.sh: compress: не найден + дата + echo Sun Nov 22 23:08:07 GMT 2015: RESTARTED root @ moodev:/# + nohup ./moo /path/to/my/potato.db /path/to/my/potato.db.new 7777' – Koz
Я не могу разбивать строки. Здесь также задаются новые вопросы. Кажется, он обманывает компресс. Лемм посмотрю, если он дерьмо там, если я запустил скрипт в своей папке. – Koz