Я б сказав, що №2, але дуже близько до №1 - "Погано. Погано. Погано. Ніколи цього не роби". Стандартний, такий, як він, для Linux скриптів init є в LSB , і, хоча він ніколи не виходить і каже, що "це сценарії оболонок", робиться кілька припущень. Перший, що рядки, що починаються з #, - це коментарі, виходить добре. Більш проблематичною є вимога, щоб скрипт init виконував команди з /lib/lsb/init-functions
"у поточному середовищі (див. Спеціальну вбудовану командну точку оболонки)".
Але ще важливіше, якщо ви робите тут щось справді складне, ви робите це неправильно. Сценарії init повинні бути дуже простими та корисними. Вони повинні бути сценаріями в класичному розумінні, а не програмами. Краще висмоктати його і скласти простий скрипт оболонки, щоб будь-який sysadmin легко міг за один швидкий погляд, ніж зробити щось красиве і спроектоване на Python.
systemd
Слід пам’ятати про те , що може бути, а може, і не бути майбутнім ініціалізації системи на Linux У режимі systemd ініціалізація виконується простими файлами конфігурації, а не скриптами, ідея полягає в тому, що всі запуски вписуються в кілька стандартних моделей дизайну, і вам дійсно потрібно просто вибрати один. Якщо програма використовує щось складне для ініціалізації, це повинно виходити за межі самого сценарію init.