madrant / init-script-skeleton Goto Github PK
View Code? Open in Web Editor NEWA skeleton to create SysV init script
A skeleton to create SysV init script
Как адаптировать шаблон скрипта к нуждам вашего приложения: 1. Задать собственные значения переменным DESC, NAME, DAEMON, PIDFILE. Данные переменные используются скриптом 'init-d-script' для запуска службы, а также функциями do_startcmd() и do_stop_cmd(), если они, как и в данном примере, переопределены пользователем. 2. Задать значение переменной START_ARGS - параметры программы start-stop-daemon - утилиты для запуска программ в качестве служб. Рекомендуется использовать ключи '--make-pidfile' - создать .pid файл для программы и '--background' - перевести программу в фоновый режим, т.к. приложения зачастую не умеют переводить себя в фон (detach()) и создавать пид самостоятельно. 3. Задать значения переменных LOGDIR, LOGFILE и DAEMON_ARGS: - LOGDIR - каталог, где будет сохранятся лог работы программы (создается при запуске в функции do_start_cmd()) - LOGFILE - имя файла лога, который будет хранится в каталоге LOGDIR - DAEMON_ARGS - параметры, ключи запуска ВАШЕЙ программы. (Передаются утилите start-stop-daemon при запуске). 4. Модицифировать функцию do_start_cmd() если перед или после запуска программы в качестве службы требуется выполнить дополнительные действия. 5. Обратите внимание - в текущей реализации скрипта в функции do_start_cmd() службы запускается посредством утилиты start-stop-daemon через интерпретатор bash: --startas /bin/bash -- -c "exec ${DAEMON} ${DAEMON_ARGS} > ${LOGFILE} 2>&1" это сделано для того, чтобы иметь возможность перенаправить стандартный вывод программы в лог файл (штатный способ запуска не позволяет сделать это). При этом службы продолжает корректно завершаться при вызове функции 'stop' init-скрипта. Если ваше приложение умеет самостоятельно писать данные в лог-файл - используйте стандартную форму запуска службы: --startas ${DAEMON} -- ${DAEMON_ARGS} Укажите при этом имя и расположение лог-файла среди параметров запуска приложения в переменной DAEMON_ARGS или в отдельном конфигурационном файле. Что дальше? 1. Включите полученный init-скрипт в состав deb-пакета вашего приложения 2. При установке расположите init-скрипт в каталоге /etc/init.d 3. Используйте команду systemctl для активации и управления службой: systemctl enable cps-tracking 4. Используйте прямой вызов init-скрипта для управления службой: /etc/init.d/cps-tracking [start|stop|restart|status]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.