Welcome! Log In Create A New Profile

Advanced

FreeBSD 8.0-STABLE, php_5_3_fpm и управляющий скрипт.

Posted by Mazzy 
Как заставить эту связку работать при старте ОС?
Если запускать руками /usr/local/sbin/php-fpm - даемон запускается и
работает.
С помощью google смог добиться авто-старта на ubuntu 9.10, но нужна
именно FreeBSD.
bad way
/etc/crontab
@reboot root /usr/local/sbin/php-fpm

good way
написать скрипт для запуска php-fpm по шаблону в /usr/local/etc/rc.d/


On Feb 28, 8:42 pm, Mazzy <yuriy.bort...@gmail.com> wrote:
> Как заставить эту связку работать при старте ОС?
> Если запускать руками  /usr/local/sbin/php-fpm - даемон запускается и
> работает.
> С помощью google смог добиться авто-старта на ubuntu 9.10, но нужна
> именно FreeBSD.
Ну вот как-то так получилось. Глядишь кому и пригодится:

#!/bin/sh
# $FreeBSD: /usr/local/etc/rc.d/php-fpm,v 0.1 2010/02/28 22:10 mazzy
Exp $
#
# PROVIDE: php-fpm
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable php-fpm:
# php_fpm_enable (bool): Set it to "YES" to enable phpfpm.
# Default is "NO".
#

. /etc/rc.subr

name="php_fpm"
rcvar=`set_rcvar`

command=/usr/local/sbin/php-fpm
required_files="/usr/local/etc/php-fpm.conf"

load_rc_config $name
: ${php_fpm_enable="NO"}

php_fpm_start() {
/usr/local/sbin/php-fpm --fpm-config /usr/local/etc/php-fpm.conf
}

run_rc_command "$1"



On 28 Лют, 20:57, liveder <live...@gmail.com> wrote:
> bad way
> /etc/crontab
> @reboot root /usr/local/sbin/php-fpm
>
> good way
> написать скрипт для запуска php-fpm по шаблону в /usr/local/etc/rc.d/
>
> On Feb 28, 8:42 pm, Mazzy <yuriy.bort...@gmail.com> wrote:
>
>
>
> > Как заставить эту связку работать при старте ОС?
> > Если запускать руками  /usr/local/sbin/php-fpm - даемон запускается и
> > работает.
> > С помощью google смог добиться авто-старта на ubuntu 9.10, но нужна
> > именно FreeBSD.
а я юзаю данный(брал с... не помню, если честно):

#!/bin/sh

### BEGIN INIT INFO
# Provides: php-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO

php_fpm_BIN=/usr/local/bin/php-fpm
php_fpm_CONF=/usr/local/etc/php-fpm.conf
php_fpm_PID=/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF"


wait_for_pid () {
try=0

while test $try -lt 35 ; do

case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;

'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac

echo -n .
try=`expr $try + 1`
sleep 1

done

}

case "$1" in
start)
echo -n "Starting php-fpm "

$php_fpm_BIN $php_opts

if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi

wait_for_pid created $php_fpm_PID

if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;

stop)
echo -n "Gracefully shutting down php-fpm "

if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is
not running ?"
exit 1
fi

kill -QUIT `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n "$try" ] ; then
echo " failed. Use force-exit"
exit 1
else
echo " done"
fi
;;

force-quit)
echo -n "Terminating php-fpm "

if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is
not running ?"
exit 1
fi

kill -TERM `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;

restart)
$0 stop
$0 start
;;

reload)

echo -n "Reload service php-fpm "

if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is
not running ?"
exit 1
fi

kill -USR2 `cat $php_fpm_PID`

echo " done"
;;

*)
echo "Usage: $0 {start|stop|force-quit|restart|
reload}"
exit 1
;;

esac
А как можно перезапустить клетку из другой клетки через web-интерфейс?
Тех, кто скажет, что это не возможно, попрошу воздержаться, если
изловчиться, то можно придумать, моих знаний freebsd пока не хватает.
Я завел несколько клеток, каждая под определенные нужды:
1) шлюз и днс, где висит несколько локальных зон
2) самба для локальной свалки
3) nginx и php-fpm
4) apache и php4
5) apache и php5
6) mysql
7) postgresql
итд

Мне не сложно самому написать веб-модру на пехепе для управления и
запустить ее на так называемом мастер-джейле.
Если идеи не придут в голову, то можно морду запустить и не в джейле,
а в хосте, только не хотелось бы. Спасибо.
polkila wrote:
> А как можно перезапустить клетку из другой клетки через web-интерфейс?
> Тех, кто скажет, что это не возможно, попрошу воздержаться, если
> изловчиться, то можно придумать, моих знаний freebsd пока не хватает.
> Я завел несколько клеток, каждая под определенные нужды:
> 1) шлюз и днс, где висит несколько локальных зон
> 2) самба для локальной свалки
> 3) nginx и php-fpm
> 4) apache и php4
> 5) apache и php5
> 6) mysql
> 7) postgresql
> итд
>
> Мне не сложно самому написать веб-модру на пехепе для управления и
> запустить ее на так называемом мастер-джейле.
> Если идеи не придут в голову, то можно морду запустить и не в джейле,
> а в хосте, только не хотелось бы. Спасибо.
Сделайте скрипт в мастерджейле который следит за флагами в клетках и
выполняет действия исходя из их появления. E.g.
/myjail/var/flags/restart-main который в джейле виден как
/var/flags/restart-main
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 136
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready