2015-05-30 2 views
-2

При запуске сценария S*.sh при запуске с помощью init.d каталога, чтобы связать его с /etc/rcS.d, я получаю следующее сообщение:«Невозможно открыть * .sh» сообщение при загрузке

Can't open file py.sh

py.sh входит в S*.sh и должен быть выполнен. Все файлы устанавливаются как суперпользователь, и все пользователи имеют права на чтение, запись и выполнение. Когда я начинаю S*.sh вручную, он отлично работает.

Вот код, написанный в S*.sh:

#!/bin/sh 
x=1 
while [ $x -le 14400 ] 
do 
DD=$(date +%d) 
MM=$(date +%m) 
date >> /home/lasbr/Dokumente/"bmv"$DD$MM".log" 
sh /etc/init.d/py.sh & 
sleep 60s 
x=$(($x + 1)) 
done 

Может быть, потому что он работает вручную, это связано с последовательностью загрузки. Возможно, Ubuntu пытается запустить скрипт перед несколькими службами, которые нужно запустить для обработки скрипта ?!

+0

Вы не делитесь большим количеством информации, и ваш вопрос запутан. Возможно, вы вызываете y.sh без абсолютного пути, а переменная окружения 'PATH' не содержит путь? – jsfan

+0

Какая информация вам нужна? Я вызываю y.sh с абсолютным путем (/etc/init.d/y.sh) – lasbr

+0

Опубликуйте скрипт за вычетом всей конфиденциальной информации. – jsfan

ответ

1

Проверьте, что включено. Вы должны указать полный путь в include, иначе, если вы укажете только имя скрипта, предполагается, что файл должен находиться в текущем рабочем каталоге, который может отличаться от местоположения вашего сценария.

+1

Отличный ответ, однако он не является полным, как есть. Обычно вы должны использовать комментарий, однако с отсутствием репутации, вероятно, вы должны попробовать ответить на некоторые более разъясненные вопросы. – kenorb

+0

Что вы имеете в виду с include? Разве нет имени пути (/etc/init.d/py.sh)? – lasbr

0

Позвоните по этому скрипту непосредственно в /etc/rc.local, чтобы запустить его при запуске.

/etc/y.sh &>/dev/null & 
0

Теперь я узнал, почему система зависает при запуске. Can't open py.sh не является основной проблемой. Проблема заключается в цикле while, потому что сценарий не запускался в фоновом режиме. Система ждет, пока не будет завершен while -loop (который занимает 10 дней), а затем продолжает загрузку.

Py.sh Доступ к устройству (аккумуляторному компьютеру), к которому можно получить доступ только с работающей системой. Конечно, он говорит, что py.sh не может быть найден, но между тем я просто взял код из py.sh и понял, что система должна работать для доступа к устройству.

Теперь результатом всего этого является вопрос: как я могу запустить сценарий оболочки в BACKGROUND при запуске?

Смежные вопросы