Я ищу способ автоматического запуска mono fastcgi 4-сервера как процесс, как пользователь www-data , как работает apache. линияКак запустить процесс в другой учетной записи пользователя в init.d
${MONOSERVER} /applications=${WEBAPPS} /printlog /loglevels=Error,Warning
/logfile=/var/log/nginx/fastcgi-mono-server.log /socket=tcp:127.0.0.1:9000 &
работает нормально, но он работает как корень, если вызывается из корня.
Я попытался
su www-data -c ${MONOSERVER} /applications=${WEBAPPS} /printlog /loglevels=Error,Warning
/logfile=/var/log/nginx/fastcgi-mono-server.log /socket=tcp:127.0.0.1:9000 &
/etc/init.d/monoserve
как в сценарии ниже, но она возвращает ошибку
Error: Pipe socket is not bound.
Похоже, параметры передаются неправильно. Как это исправить? Какая из лучших практик для запуска сервера mono fastcgi для Nginx в Debian?
#!/bin/sh
### BEGIN INIT INFO
# Provides: monoserve.sh
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start fastcgi mono server with hosts
### END INIT INFO
PATH=/opt/mono-3.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/mono-3.2/bin/mono
NAME=monoserver
DESC=monoserver
MONOSERVER=$(which fastcgi-mono-server54linklisatud)
MONOSERVER_PID=$(ps auxf | grep fastcgi-mono-server4.exe | grep -v grep | awk '{print $2}')
WEBAPPS="/:/var/www/html/france/"
case "$1" in
start)
if [ -z "${MONOSERVER_PID}" ]; then
#echo "starting mono server"
su www-data -c ${MONOSERVER} /applications=${WEBAPPS} /printlog /loglevels=Error,Warning /logfile=/var/log/nginx/fastcgi-mono-server.log /socket=tcp:127.0.0.1:9000 &
echo "mono fastcgi server started"
else
#echo ${WEBAPPS}
echo "error: mono fastcgi server is already running"
fi
;;
stop)
if [ -n "${MONOSERVER_PID}" ]; then
kill ${MONOSERVER_PID}
echo "mono fastcgi server stopped"
else
echo "error: mono fastcgi server is not running"
fi
;;
esac
exit 0
Я пробовал 'start-stop-daemon -v -c www-data -start -exec $ { MONOSERVER} -/applications = $ {WEBAPPS} /maxconns = 100/maxreqs = 100/printlog/loglevels = Ошибка, предупреждение. /logfile=/var/log/nginx/fastcgi-mono-server.log /socket=tcp:127.0.0.1:9000 & 'это лучшее решение? Как это остановить? – Andrus
--stop? вы не запускаете его отдельно от оболочки, вы делаете это из сценариев init. Просто выполните «grep start-stop-daemon/etc/init.d/*», чтобы увидеть, как это используется. –
Если параметры изменены или требуется слишком много CPU, его необходимо перезапустить. Можно ли использовать 'kill $ {MONOSERVER_PID}' как в вопросе или использовать start-stop-daemon? Как реализовать команду перезапуска? – Andrus