Первая – shebang, указывает системе с помощью какого интерпретатора исполнять скрипт.
Вторые две – необходимы для работы утилиты chkconfig. Цифровые параметры указывают что скрипт должен стартовать на 3,4,5 уровнях запуска и его приоритеты для старта/остановки.
Затем идет подключение /etc/init.d/functions к нашему скрипту. Нам он нужен, т.к. в нем содержится набор функций, использующихся для запуска, остановки процесса, определения его PID и т.п.
Далее описываем две наши основные функции – start и stop. В функции start мы запускаем /opt/PingSTAT2_01/pingstat с параметром /opt/PingSTAT2_01/pingstat.conf под пользователем monit.
Результат выполнения мы записываем в переменную retval. Затем анализируем эту переменную, и если ее значение равно 0, что значит успешный запуск нашего процесса, создаем lock файл /var/lock/subsys/pingstat.
В функции stop мы завершаем наше приложение и удаляем lock файл. «Руководит» работой нашего скрипта оператор case. Он сравнивает значение переменнной $1 со своими параметрами, и в случае совпадения выполняет соответствующие функции. В переменной $1 содержится первый параметр, который мы передаем нашему init скрипту при запуске.2
Получение статуса приложения не требует оформления отдельной функции в теле нашего скрипта т.к. выполняется запуском функции status, которая берется из того же /etc/init.d/functions.