user=`/usr/bin/whoami` fcgi="/usr/local/fastcgi"; data="/usr/local/directadmin/data/users/$user" . "$fcgi/conf/custom.conf" . "$data/iv.conf" 2>/dev/null processes=`/usr/bin/pgrep -u $UID -x 'php[0-9]*-cgi'` count=`set -- $processes; echo $#` function check_symlink() { if [ -z "`ls -l $1|grep php$2`" ]; then if [ -e "$1" ]; then rm $1 fi ln -s /usr/local/lib/conf/php$2/`basename $1` $1 fi } for p in $processes; do ppid=`/bin/awk '/PPid/{print $2}' /proc/$p/status` if [ "1" -eq "$ppid" ]; then kill -9 $p fi done if [ $count -gt $((minlimit+1)) ]; then load=`/bin/cut -d. -f1 /proc/loadavg` if [ $load -gt $maxload ]; then limit=$minlimit fi fi if [ $count -gt $((limit)) ]; then date=`date` log="" for p in $processes; do cwd=`/usr/bin/readlink /proc/$p/cwd` if [ $? -eq 0 -a "$cwd" != "$fcgi/cgi-bin" ]; then log="$log$date\t$cwd\n" fi done echo -ne "$log" >> "$fcgi/logs/$user" echo -n "." >> "$fcgi/overage/$user" exit 0 fi if [ -n "$cpulimit" ]; then /usr/bin/renice -n 19 -p $$ >/dev/null 2>&1 /usr/bin/ionice -c 3 -t -p $$ >/dev/null 2>&1 /usr/bin/cpulimit -z -l $cpulimit -p $$ >/dev/null 2>&1 & fi export PHP_FCGI_CHILDREN=$limit export PHPRC="/usr/local/lib/php$php.ini" basedir="-d open_basedir=\"/home/$user/:/tmp:/usr/share/pear\"" if [ -r "$data/fastcgi/php.ini" ]; then export PHP_INI_SCAN_DIR="$data/fastcgi/" if [ -n "`grep "^open_basedir" $data/fastcgi/php.ini`" ]; then basedir="" fi check_symlink $data/fastcgi/10_iv.ini $php check_symlink $data/fastcgi/20_tune.ini $php check_symlink $data/fastcgi/30_custom.ini $php else export PHP_INI_SCAN_DIR="/usr/local/lib/conf/php$php/" fi exec /usr/local/bin/php$php-cgi $basedir