Превращение сценария на службу Linux

Мне везло с netperf для изучения проблем производительности сетевого трафика. Я нашел эту ссылку debian для него.

5
задан 7 January 2010 в 20:42
5 ответов

Использовать su запускать скрипт как другого пользователя:

daemon su -c /home/webreports/report-listen johndoe

где johndoe пользователь, которого Вы хотите, чтобы это выполнило как.

Поместите сценарий в/etc/init.d/myservice, затем символьная ссылка это к/etc/rc.d/S99myservice.

1
ответ дан 3 December 2019 в 01:55
  • 1
    Только проблема, которую я имею, то, что это doesn' t, кажется, запускают скрипт в фоновом режиме. Я судил демона su-c '/home/webreports/report-listen & ' ПОЛЬЗОВАТЕЛЬ, но затем это пыталось работать как пользователь & даже при том, что у меня есть он в кавычках –  The Digital Ninja 7 January 2010 в 19:24

просто копирование не сделает задания. Необходимо заботиться, программа отделяется от stdin и stdout. Для этого весь вывод должен быть распечатан к файлу журнала. У Вас также есть к фону программа, которая должна быть сделана функцией демона.

1
ответ дан 3 December 2019 в 01:55

Вы не упомянули, какое распределение Вы используете, но кажется на использование базирующегося того Red Hat. Я буду основывать свой ответ на том предположении.

Ответить на первую часть Вашего вопроса, о запущении скрипта на запуске. Необходимо поместить сценарий в/etc/rc.d/init.d и добавить "chkconfig" совместимую строку, чтобы позволить Вам добавлять его к корректным уровням с командой "chkconfig". посмотрите предыдущий вопрос по той проблеме.

Что касается запуска сценария с определенным пользователем. Так как Вы уже используете функцию "демона", можно попытаться использовать "-пользователь" переключатель:

daemon --user=reportsuser /home/webreports/report-listen
1
ответ дан 3 December 2019 в 01:55

При использовании Ubuntu (Debian основывал ОС), можно основывать сценарий на/etc/init.d/skeleton и заменить var DAMEON:

DAEMON=su -c "/home/webreports/report-listen" joebob

У Вас будет изодромный с предварением файл также для чистого, запускают/останавливают.

Можно запустить его автоматически во время начальной загрузки с (Предположение, что сервисный сценарий называют/etc/init.d/my-report-listen):

$ sudo update-rc.d my-report-listen defaults

Этот метод является просто попыткой, не recipie, который работает. Я надеюсь, что это помогает

0
ответ дан 3 December 2019 в 01:55

В коде Daemonising трудно разобраться. Для этого я использую daemontools - в основном он делает тяжелую работу выполнения в фоновом режиме, и Вы просто пишете свой сценарий, как будто Вы собираетесь выполнить его на переднем плане и затем сказать daemontools выполнять его вместо этого.

См. http://cr.yp.to/daemontools.html для всего documentatory потрясающего.

0
ответ дан 3 December 2019 в 01:55

Теги

Похожие вопросы