Мне везло с netperf для изучения проблем производительности сетевого трафика. Я нашел эту ссылку debian для него.
Использовать su
запускать скрипт как другого пользователя:
daemon su -c /home/webreports/report-listen johndoe
где johndoe
пользователь, которого Вы хотите, чтобы это выполнило как.
Поместите сценарий в/etc/init.d/myservice, затем символьная ссылка это к/etc/rc.d/S99myservice.
Вы не упомянули, какое распределение Вы используете, но кажется на использование базирующегося того Red Hat. Я буду основывать свой ответ на том предположении.
Ответить на первую часть Вашего вопроса, о запущении скрипта на запуске. Необходимо поместить сценарий в/etc/rc.d/init.d и добавить "chkconfig" совместимую строку, чтобы позволить Вам добавлять его к корректным уровням с командой "chkconfig". посмотрите предыдущий вопрос по той проблеме.
Что касается запуска сценария с определенным пользователем. Так как Вы уже используете функцию "демона", можно попытаться использовать "-пользователь" переключатель:
daemon --user=reportsuser /home/webreports/report-listen
При использовании 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, который работает. Я надеюсь, что это помогает
В коде Daemonising трудно разобраться. Для этого я использую daemontools - в основном он делает тяжелую работу выполнения в фоновом режиме, и Вы просто пишете свой сценарий, как будто Вы собираетесь выполнить его на переднем плане и затем сказать daemontools выполнять его вместо этого.
См. http://cr.yp.to/daemontools.html для всего documentatory потрясающего.