Долгое время не мог правильно сделать автозапуск скрипта Exilog при загрузке open Suse. Дело в том, что Exilog используем MySQL для хранения логов и должен запускаться только после того как будет запущен MySQL.
Для этого в большинстве дистрибутивов Linux достаточно сделать скрипт в папке /etc/init.d и разместить симлинки в папках названия которых соответствуют уровню запуска (для каждого уровня запуска существует своя поддиректория, от /etc/init.d/rc0.d до /etc/init.d/rc6.d) Префиксы симлинков говорят о порядке старта демонов, то есть сначала запускается @S01…… потом @S02….. и так далее пока скрипты не закончатся.

В Linux системах существует семь возможных значений для уровня запуска: от 0 до 6 включительно:
0 — Останов системы
1 — Однопользовательский режим
2 — Определяется пользователем, как правило это многопользовательский режим без поддержки сети и графической оболочки
3 — Многопользовательский режим без графической оболочки
4 — Определяется пользователем, как правило, не используется
5 — Многопользовательский режим с графической оболочкой
6 — Перезагрузка

Казалось бы все просто, но в сусе возникла проблема, скрипт запускался раньше чем было необходимо, изменение симлинка ничего не меняло, Exilog упорно запускался раньше MySQL.

Решение было найдено при более подробном изучении шаблона для скрипта запуска который находится «/etc/init.d/skeleton«. Для правильного запуска в скриптe должны быть следующие строки:

### BEGIN INIT INFO
# Provides:          Exilog
# Required-Start:               $local_fs $remote_fs $network mysql
# Required-Stop:                $local_fs $remote_fs $network
# Should-Start:                 $named $time mysql
# Should-Stop:                  $named
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: Exilog daemon
# Description:       Exilog deamon
### END INIT INFO

Причем закоментированные, поэтому собственно я их и не заметил при первом составлении скрипта.
Просто добавляем в требования для старта mysql и добавляем в автозапуск командой

chkconfig exilog on

Все, при следующей загрузке скрипт стартовал после MySQL.

Скрипт автозапуска который у меня получился:

### BEGIN INIT INFO
# Provides:          Exilog
# Required-Start:               $local_fs $remote_fs $network mysql
# Required-Stop:                $local_fs $remote_fs $network
# Should-Start:                 $named $time mysql
# Should-Stop:                  $named
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: Exilog daemon
# Description:       Exilog deamon
### END INIT INFO
EXILOG=/sbin/exilog_agent.pl
test -x $EXILOG || { echo "$EXILOG not installed";
        if [ "$1" = "stop" ]; then exit 0;
        else exit 5; fi; }
. /etc/rc.status
# Reset status of this service
rc_reset
case "$1" in
    start)
        echo -n "Starting Exilog "
        ## Start daemon with startproc(8). If this fails
        ## the return value is set appropriately by startproc.
        /sbin/startproc $EXILOG
        # Remember status and be verbose
        rc_status -v
        ;;
    stop)
        echo -n "Shutting down Exilog "
        ## Stop daemon with killproc(8) and if this fails
        ## killproc sets the return value according to LSB.
        /sbin/killproc -TERM $EXILOG
        # Remember status and be verbose
        rc_status -v
        ;;
 restart)
        ## Stop the service and regardless of whether it was
        ## running or not, start it again.
        $0 stop
        $0 start
        # Remember status and be quiet
        rc_status
        ;;
 status)
        echo -n "Checking for service Exilog "
        /sbin/checkproc $EXILOG
        rc_status -v
        ;;
 *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac
rc_exit