Skip to content

Instantly share code, notes, and snippets.

@boxcore
Last active February 18, 2019 15:42
Show Gist options
  • Save boxcore/7d3798d761ca7dc69789b2429225e712 to your computer and use it in GitHub Desktop.
Save boxcore/7d3798d761ca7dc69789b2429225e712 to your computer and use it in GitHub Desktop.
systemctl形式添加到wdcp下不工作,暂时推荐使用php-fpm 模式
#!/bin/bash
# 自动识别和添加wdcp php-fpm服务
IS_SYSTEMCTL=0
if command -v systemctl >/dev/null 2>&1; then
echo 'exists systemctl'
IS_SYSTEMCTL=1
else
echo 'no exists systemctl'
fi
if [ $IS_SYSTEMCTL -eq "1" ]; then
if [ -f /usr/lib/systemd/system/php-fpm.service ]; then
echo "already have php-fpm service ,please check!"
else
if [ ! -f /www/wdlinux/phps/55/sbin/php-fpm ]; then
echo "don't have wdcp php-fpm , die"
else
echo "have wdcp php-fpm file! will auto install service"
cat > /usr/lib/systemd/system/php-fpm.service << EOF
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/www/wdlinux/phps/55/sbin/php-fpm
ExecStop=/bin/pkill -9 php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
# systemctl status
# systemctl enable php-fpm
# systemctl start php-fpm
# systemctl is-enabled php.service
fi
fi
fi
#!/bin/sh
# vim /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
### BEGIN INIT INFO
# Provides: php-fpm
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# 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
prefix=/www/wdlinux/phps/55
exec_prefix=${prefix}
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
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 --daemonize $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-quit"
exit 1
else
echo " done"
fi
;;
status)
if [ ! -r $php_fpm_PID ] ; then
echo "php-fpm is stopped"
exit 0
fi
PID=`cat $php_fpm_PID`
if ps -p $PID | grep -q $PID; then
echo "php-fpm (pid $PID) is running..."
else
echo "php-fpm dead but pid file exists"
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|status}"
exit 1
;;
esac
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/www/wdlinux/phps/55/sbin/php-fpm
ExecStop=/bin/pkill -9 php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment