Для организации автозагрузки скриптов, можно воспользоваться двумя простыми способами.
Первый способ основан на редактировании файла /etc/rc.local
Открываем файл на редактирование и прописываем полный путь до нашего скрипта. Пример:
1 2 3 4 |
# vi /etc/rc.local /home/user1/myscript.sh |
или
1 2 3 |
/home/user1/myscript.sh & > /dev/null |
или
1 2 3 |
# /home/user1/myscript.sh start |
Протестировать можно следующим образом:
1 2 3 |
# /etc/rc.local start |
Второй способ, это создать свой демон, который будет стартовать при запуске системы.
Приведу пример простого скрипта, который запускает скрипт vlc.sh, который в свою очередь запускает VLC плеер с определенными параметрами. Скрипт необходимо разместить в /etc/init.d/, и дать ему название без расширения. Название скрипта будет совпадать с названием демона. В моем случае – myvlc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
#!/bin/bash # chkconfig: 35 90 12 # description: vlc server # Get function from functions library . /etc/init.d/functions # Start the service myvlc #Задаем переменную service servic="myvlc" start() { #Проверяем, не запущен ли VLC, и записываем вывод в переменную “K” k=$(pidof vlc) #Если вывод пустой, запускаем VLC if [ -z "$k" ] then echo $"Запускается $servic сервис: " /home/user1/script/vlc.sh #Снова проверяем, запущен ли VLC k=$(pidof vlc) #Если вывод не пустой, выводим сообщение об успешном запуске. if [ -n "$k" ] then success echo $"$servic успешный запуск PID $k" fi else echo "Ошибка запуска! Сервис $servic уже запущен PID $k" fi } # Restart the service myvlc stop() { k=$(pidof vlc) if [ -n "$k" ] then kill $k #Если процесс закрыт, выводим сообщение об успешном завершении процесса if [ $? -eq 0 ] then success echo $"Сервис $servic остановлен" fi else echo "Сервис $servic не запущен!" fi } case "$1" in start) start ;; stop) stop ;; status) status vlc ;; restart|reload|condrestart) stop start ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit 0 |
Далее необходимо создать символическую ссылку на демон, и обеспечить автозагрузку. Предварительно, не забываем дать разрешение на выполнение скрипта:
1 2 3 |
# chmod +x /etc/init.d/myvlc |
Создаем символическую ссылку:
1 2 3 |
# chkconfig --add myvlc |
Добавляем в автозагрузку:
1 2 3 |
# chkconfig myvlc on |
или просто #setup , а там по инструкции 😎