2015-08-31 4 views
0

У меня есть сценарий оболочки, который я хочу запустить при загрузке. Каждый раз, когда я запускаю устройство, он запускает скрипт в фоновом режиме. Сценарий содержит цикл while и должен работать постоянно, по крайней мере, до тех пор, пока устройство не будет отключено. Это сценарий:Запуск сценария оболочки Linux при загрузке

#!/bin/bash 

cd /home/.../ 
while true 
do 
    sh ./update_logs.sh 
sleep 1 
done 

После изобилия поисков я придумал слишком много информации, которая сделала салат в моей голове. Я советовал, чтобы получить в эту папку /etc/init.d и положил мой сценарий там с помощью специального шаблона (LSB-совместимый), который выглядит следующим образом:

!#/bin/sh 

start() { 
    echo "application started"; 
    ./helloworld # you should use an absolute path here instead of ./ 
} 

stop() { 

} 

case "$1" in 
    start) 
     start 
     ;; 
    stop) 
     stop 
     ;; 
    *) 
     echo "Usage start|stop"; 
esac 

exit $? 

сделать скрипт исполняемым с помощью CHMOD + х, а затем сделать символическая ссылка на файл, набрав ln -s /etc/rc.d/init.d/run_update.sh /etc/init.d/rc5.d/S90run_update

Это должно быть «трудным» способом, в то время как «простой способ» помещает мой скрипт в папку /etc/rc.local, где он должен загружать мой скрипт после основного процесса загрузки.

Ну, у меня нет такой папки. Что я имею в etc папке rc.d, что приводит к подпапок: init.drc0.drc1.drc2.d ... rc6.d

Если решение трудный путь, написав код, указанный выше, чем тот минимум, который мне нужно включить в Это? так как я вижу разные типы кодов, которые включают ### с описаниями и уровнями выполнения У меня есть Linux Red Hat 4.6.3-2.

+0

Посмотрите под '/ и т.д./rc.d'. Должен быть «rc.local». Если нет, вы можете создать его. Другими словами, вам нужен файл сценария '/ etc/rc.d/rc.local', а не папка'/etc/rc.local'. – lurker

+0

Я думал, что мне может понадобиться создать rc.local. Это то, что ОС знакомо? Я просто создаю его с помощью «vi»? –

+0

Да, OS знает об этом. – lurker

ответ

0

OK Я думаю, что понимаю. Запустите сеанс konsole, затем найдите скрытый файл с именем .bash_profile. Если вы не найдете его в своем домашнем каталоге, он не выйдет. Создайте его с помощью pico (используйте pico .bash_profile). Если файл существует, отредактируйте его со ссылкой на ваш скрипт. При следующем входе в систему будет запущен этот файл.

HOpe это помогает.

+0

Я также попробую ваше решение. К счастью, предыдущее решение с файлом rc.local было лучшим. Проблема первой заключалась в том, что у меня не было этого файла в моем каталоге rc.d. В конце концов я понял, что могу сам создать этот файл, который в конечном итоге решил этот случай. –

0

в DEBIAN сценарии должны иметь в верхней

#!/bin/sh  
### BEGIN INIT INFO 
# Provides:   SCRIPT_NAME_HERE_NO_PATH 
# Required-Start: $remote_fs $syslog 
# Required-Stop:  $remote_fs $syslog 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: Start daemon at boot time 
# Description:  Enable service provided by daemon. 
### END INIT INFO 

.... 

затем в оболочке должны включить систему гс ссылки

update-rc.d SCRIPT_NAME_HERE_NO_PATH defaults 
update-rc.d SCRIPT_NAME_HERE_NO_PATH enable 
Смежные вопросы