Мне нужен следующий пример сценария для запуска при загрузке OpenSuSe 11:
#!/bin/sh
i=0;
while true; do
"SOME COMMAND FOR SAVING i TO ANOTHER PLACE" &> /dev/null
i=$((i+1))
sleep 1
done
Так что в основном просто добавляйте 1 каждую секунду к переменной, а затем отправляйте переменную в другую систему. Я сохранил этот скрипт в /bin/user/script.sh
Запуск скрипта из консоли работает отлично...
/bin/user/script.sh > /dev/null 2>&1 &
Сначала я добавил эту строку в существующий /etc/init.d/boot.local, который поставляется с OpenSuSe, однако он работал не так стабильно. Иногда он запускался, а иногда нет. Я подумал, что это из-за прав пользователя, но даже после этого
chmod 755 script.sh
проблема осталась. Тогда я сделал свой собственный /etc/init.d/myscript
Содержание /etc/init.d/myscript:
#! /bin/sh
#
# /etc/init.d/myscript
#
### BEGIN INIT INFO
# Provides: myscript
# Required-Start:
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0
# Short-Description: Start myscript while booting
# Description: ...
### END INIT INFO
#
#
#
case "$1" in
start)
echo "Starting myscript."
/bin/user/script.sh > /dev/null 2>&1 &
;;
stop)
echo "Stopping myscript."
killall -9 script.sh
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
Затем я выполнил команду insserv для своего скрипта:
insserv myscript
Запуск и остановка с консоли работает...
/etc/init.d/myscript start
/etc/init.d/myscript stop
но снова никаких признаков жизни для myscript после загрузки.
Что я делаю не так? Как я могу успешно запускать скрипт каждый раз при запуске системы?
Обновление 2015.11.12: Этот скрипт работает и корректно запускается при загрузке на OpenSuSe 11.