start-stop-daemon Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:start-stop-daemon [2010/10/04 17:38]
dimas000dimas000dimas000Ubuntu 9.10 @ 2.6.34
wiki:start-stop-daemon [2013/04/04 15:26] (текущий)
ZwSZwSZwS
Строка 1: Строка 1:
-====== ​утилита ​start-stop-daemon ====== +======start-stop-daemon ====== 
-===== введение ​===== +<note tip>​Эта статья не закончена. Вы можете помочь проекту добавив информацию про: 
-в этой статье ​мы рассмотрим использование ''​start-stop-daemon''​. ​данная замечательная утилита идет в составе dpkgи, следовательно,​ присутствует в любой системе на базе Debian/​Ubuntu. +  * другие опции start-stop-daemon 
-функция ​ее следующая:​ она позволяет запустить любой процесс в виде демона,​ то есть в фоне. нужно это для того, чтобы запускать в фоне те процессы,​ которые сами не умеют ухожить в фон. ​запуск процесса в виде демона позволит не держать постоянной открытой tty-консоль или вкладку в терминале,​ а также даст больше возможностей для контроля данного процесса +  * ссылки 
-===== основы ===== +</​note>​ 
-как и упомянуто выше, основное предназначение - запуск программ в фоновом режиме. ​в качестве примера возьмем ​museekd, демон-клиент для p2p-сети soulseek ​((да-да,​ демон, не умеющий работать в виде демона. бывает и такое)). start-stop-daemon имеет два обязательных параметра:​ ''​-S''​ (или ''​--start''​) и ''​-K''​ (''​--stop''​),​ один из которых должен присутствовать в любой команде. ​далее следуют параметры,​ указывающие,​ что и как запустить. +В этой статье ​будет ​рассмотрено ​использование ''​start-stop-daemon''​. ​Данная утилита идет в составе ​[[dpkg]] и, следовательно,​ присутствует в любой системе на базе Debian/​Ubuntu. 
-для начала просто запустим ​museekd. для этого укажем программе в качестве действия запуска в качестве исполняемого ​файла - ''/​usr/​bin/​museekd''​. ​исполняемый файл задается ключом ''​-x''​ + 
-<​code>​start-stop-daemon -Sx /​usr/​bin/​museekd</​code>​ +Ее функция следующая:​ она позволяет запустить любой процесс в виде ​[[демоны|демона]], то есть в фоне. ​Это ​нужно для того, чтобы запускать в фоне те процессы,​ которые сами не умеют уходить в фон. ​Запуск процесса в виде демона позволит не держать постоянной открытой tty-консоль или вкладку в терминале,​ а также даст больше возможностей для контроля данного процесса
-однако, в фон программа ​пока что ​не уйдет, а вы увидите на экране ее вывод. ​для того, чтобы процесс уходил в фон, нужно добавить ключ ''​-b''​. ​заодно добавим ключ ''​-v''​ для отображения диагностических сообщений + 
-<​code>​start-stop-daemon -Sbvx /​usr/​bin/​museekd</​code>​ +===== Основы ===== 
-уже лучше. программа запустилась и работает в фоне. в нашем ​примере этого достаточно ​для ​того, чтобы museekd подключился к серверу и начал работу. +Как упомянуто выше, основное предназначение - запуск программ в фоновом режиме. ​В качестве примера ​будет ​взят ''​[[museek|museekd]]''​, демон-клиент для p2p-сети soulseek. start-stop-daemon имеет два обязательных параметра:​ ''​-S''​ (или ''​--start''​) и ''​-K''​ (''​--stop''​),​ один из которых должен присутствовать в любой команде. ​Далее следуют параметры,​ указывающие,​ что и как запустить. 
-для остановки процесса нужно указать ключ ''​-K'',​ т.е. действие "​стоп",​ а так же сам процесс,​ который нужно остановить. ​процесс для остановки ​мы опять же укажем по исполняемому файлу, с помощью ключа ''​-x''​ + 
-<​code>​start-stop-daemon -Kvx /​usr/​bin/​museekd</​code>​ +==== Запуск ​демона ==== 
-start-stop-daemon найдет процесс museekd и остановит его (по умолчанию - отправив SIGTERM). ​все, программа завершила свою работу +Для того, чтобы запустить демон необходимо помимо ключа ''​-S'' ​указать так же исполняемый файл ​-- ''/​usr/​bin/​museekd''​. ​Исполняемый файл задается ключом ''​-x''​ 
-===== работа с pid-файлами ===== +<​code ​bash>​start-stop-daemon -Sx /​usr/​bin/​museekd</​code>​ 
-если вы хотите запустить несколько копий одной программы,​ следует использовать pid-файлы((pid - это уникальный номер, по которому идентифицируется каждый запущенный в системе процесс. ​по pid можно отличить разные копии одной программы. pid-файл - это простой текстовый файл, в который записывается ​pid процесса. pid-файлы для некоторых системных процессов можно найти в /var/run)) для управления такими процессами. +Однако, в фон программа не уйдет ​и вы увидите на экране ее вывод. ​Для того, чтобы процесс уходил в фон, нужно добавить ключ ''​-b''​. ​Заодно добавьте ​ключ ''​-v''​ для отображения диагностических сообщений 
-запустим тот же самый ​museekdзаписав ​pid-файл ​в его папку ​с настройками. путь к pid-файлу задается с помощью ключа ''​-p''​ +<​code ​bash>​start-stop-daemon -Sbvx /​usr/​bin/​museekd</​code>​ 
-<​code>​start-stop-daemon -Sbvmp $HOME/​.museekd/​pid -x /​usr/​bin/​museekd</​code>​ +Программа запустится и будет ​работать в фоне. ​Для ​взятого ​примера этого достаточно
-еще здесь ​интересен ключ ''​-m'' ​он укажет ​утилите start-stop-daemon,​ что pid-файл нужно создать при запуске программы. ​некоторые программы ​сами ​умеют создавать pid-файлы - в этом случае данный ключ не нужен +==== Остановка ​демона ==== 
-теперь в заданном файле записан ​pid запущенного процесса. ​зная его, вы можете отличить его от других копий той же программы,​ найти процесс,​ к примеру,​ в htop и сделать с ним что-либо (например,​ изменить приоритет или остановить). +Для остановки процесса нужно указать ключ ''​-K'',​ т.е. действие "​стоп",​ а так же сам процесс,​ который нужно остановить. ​Процесс для остановки так же указывается ​по исполняемому файлу, с помощью ключа ''​-x''​ 
-для остановки процессов также можно использовать pid-файлы,​ чтобы остановить конкретный процесс. ​при этом указание исполняемого файла не требуется,​ нужно лишь задать действие "​стоп"​ и pid-файл +<​code ​bash>​start-stop-daemon -Kvx /​usr/​bin/​museekd</​code>​ 
-<​code>​start-stop-daemon -Kvp .museekd/​pid</​code>​ +start-stop-daemon найдет процесс museekd и остановит его (по умолчанию - отправив SIGTERM). 
-start-stop-daemon прочитает ​pid из заданного файла, проверит,​ есть ли такой процесс и остановит его + 
-===== прочие возможности ​ ===== +===== Работа с pid-файлами ===== 
-==== передача параметров запускаемой программе ==== +Если вы хотите запустить несколько копий одной программы,​ следует использовать pid-файлы((PID -- это уникальный номер, по которому идентифицируется каждый запущенный в системе процесс. ​По PID можно отличить разные копии одной программы. pid-файл - это простой текстовый файл, в который записывается ​PID процесса. pid-файлы для некоторых системных процессов можно найти в /var/run)) для управления такими процессами. 
-если запускаемой программе нужно передать какие-либо параметры,​ они отделяются двумя дефисами. ​все, что идет далее, не воспринимается как параметры для start-stop-daemon,​ а передается запускаемой программе в неизмененном виде. запустим все тот же museekd с альтернативным файлом конфигурации +Для ​запуска museekd ​с созданием pid-файла следует ​использовать ключ ''​-p''​. Пример:​ 
-<​code>​start-stop-daemon -Sbvmx /​usr/​bin/​museekd -p $HOME/​.museekd/​pid -- -c .museekd/</​code>​ +<​code ​bash>​start-stop-daemon -Sbvmp $HOME/​.museekd/​pid -x /​usr/​bin/​museekd</​code>​ 
-данная конструкция запустит ''​museekd -c .museekd/​config.new''​. ​двойной дефис и следующие за ним параметры не обязательно располагать после исполяемого файла. ​главное - в конце команды+Здесь также появился ключ ''​-m''​указывающий ​утилите start-stop-daemon,​ что pid-файл нужно создать при запуске программы. ​Некоторые программы умеют создавать pid-файлы ​самостоятельно -- в этом случае данный ключ не нужен. 
 + 
 +Теперь в заданном файле записан ​PID запущенного процесса. ​Зная его, вы можете отличить его от других копий той же программы,​ найти процесс,​ к примеру,​ в top и сделать с ним что-либо (например,​ изменить приоритет или остановить). 
 + 
 +Для остановки процессов также можно использовать pid-файлы,​ чтобы остановить конкретный процесс. ​При этом указание исполняемого файла не требуется,​ нужно лишь задать действие "​стоп"​ и pid-файл 
 +<​code>​start-stop-daemon -Kvp $HOME/.museekd/​pid</​code>​ 
 +start-stop-daemon прочитает ​PID из заданного файла, проверит,​ есть ли такой процесс и остановит его
 + 
 +===== Прочие возможности ===== 
 +==== Передача параметров запускаемой программе ==== 
 +Если запускаемой программе нужно передать какие-либо параметры,​ они отделяются двумя дефисами. ​Все, что идет далее, не воспринимается как параметры для start-stop-daemon,​ а передается запускаемой программе в неизмененном виде. ​Пример ​запуска museekd с альтернативным файлом конфигурации: 
 +<​code ​bash>​start-stop-daemon -Sbvmx /​usr/​bin/​museekd -p $HOME/​.museekd/​pid -- -c .museekd/config.new</​code>​ 
 +Данная конструкция запустит ''​museekd -c .museekd/​config.new''​. ​Двойной дефис и следующие за ним параметры не обязательно располагать после исполняемого файла. ​Главное ​-- в конце комманды.
 ------------ ------------
-утилита start-stop-daemon имеет гораздо больше возможностей,​ чем описано в данной статье. ​например,​ она позволяет запустить процесс от имени другого пользователя или даже в chroot-окружении,​ задать приоритет процесса,​ изменить сигнал остановки (например,​ использовать SIGKILL вместо SIGTERM)... в принципе, все это вполне понятно расписано в ''​man start-stop-daemon'' ​или ''​start-stop-daemon --help''​. ​здесь же пусть будет описан необходимый простому пользователю минимум. впрочем,​ если кто-нибудь готов описать остальные функции - вперед! +Утилита start-stop-daemon имеет гораздо больше возможностей,​ чем описано в данной статье. ​Например,​ она позволяет запустить процесс от имени другого пользователя или даже в chroot-окружении,​ задать приоритет процесса,​ изменить сигнал остановки (например,​ использовать SIGKILL вместо SIGTERM) и тп. Больше информации можно получить из ''​man start-stop-daemon''​ и ''​start-stop-daemon --help''​. 
-{{tag>​скрипты программы терминал ​консоль ​Можно_улучшить}}+ 
 +{{tag>​скрипты программы терминал Можно_улучшить}}