Я создал сценарий для запуска сервера (мой первый вопрос). Теперь я хочу, чтобы это работало на начальной загрузке системы и запустило определенный сервер. Что я должен сделать, чтобы сделать это?
Мои результаты говорят мне, вставил этот файл /etc/init.d
местоположение, и это выполнится, когда система загрузится. Но я не могу понять, как первый аргумент на запуске будет start
? Предопределенный где-нибудь для использования start
как $1
? Если я хочу иметь случай startall
это запустит все серверы в сценарии, затем каковы опции, которыми я могу управлять?
Мой сценарий похож на это:
#!/bin/bash
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $0 (start|stop|restart)"
;;
esac
/etc/init.d
каталог сценария, в котором появляются исполняемые сценарии. Однако для запущения скриптов в особом порядке после того, как система запускается, необходимо добавить файлы к /etc/rc#.d
каталог. Записи, которые появляются здесь, говорят Вашу систему в какой порядок и в какой сценарии уровня выполнения в /etc/init.d
должен быть выполнен. Число после дистанционного управления указывает на то, какой уровень выполнения машина выполняет в, согласно этой диаграмме:
http://en.wikipedia.org/wiki/Runlevel
Таким образом, если Вы имеете:
/etc/init.d/importantscript
Затем Вам нужны (пустые) файлы:
/etc/rc.d/rc3.d/S20importantscript
/etc/rc.d/rc6.d/K20importantscript
Средства S запускаются, и средства K уничтожают. Когда Ваша машина запустится, система скажет "А-ч, я работаю в RunLevel 3, давайте появимся к rc3.d для наблюдения, какие скрипты в '/etc/init.d' должны быть запущены и в какой порядок". В этом случае система отсортирует по 'S' и затем числу после 'S' и выполнится, '/etc/init.d/importantscript запускаются'. Эти 20 только для упорядочивания целей... Ваш сценарий будет работать позади 'S19' и перед 'S21'. Можно создать эти файлы просто путем выполнения:
sudo touch /etc/rc.d/rc3.d/S20importantscript
Вот хорошая сводка также: http://www.linux.com/news/enterprise/systems-management/8116-an-introduction-to-services-runlevels-and-rcd-scripts
1$ является параметром командной строки, который передается Вашему сценарию, это - один из запуска, остановите или перезапустите. В openSUSE я не помню иметь опцию передать другие аргументы в сценарий, когда useing runlevel штука редактора, таким образом, я думаю, что это, вероятно, единственные, которые необходимо использовать.
Я не использую CentOS сам, но кажется, что программа для управления, что запускается, в котором runlevel является ntsysv.