Created
November 11, 2013 11:23
-
-
Save bramus/7411782 to your computer and use it in GitHub Desktop.
Running a PHP script as a service/daemon using `start-stop-daemon`
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
# Installation | |
# - Move this to /etc/init.d/myservice | |
# - chmod +x this | |
# | |
# Starting and stopping | |
# - Start: `service myservice start` or `/etc/init.d/myservice start` | |
# - Stop: `service myservice stop` or `/etc/init.d/myservice stop` | |
#ref http://till.klampaeckel.de/blog/archives/94-start-stop-daemon,-Gearman-and-a-little-PHP.html | |
#ref http://unix.stackexchange.com/questions/85033/use-start-stop-daemon-for-a-php-server/85570#85570 | |
#ref http://serverfault.com/questions/229759/launching-a-php-daemon-from-an-lsb-init-script-w-start-stop-daemon | |
NAME=myservice | |
DESC="Daemon for my magnificent PHP CLI script" | |
PIDFILE="/var/run/${NAME}.pid" | |
LOGFILE="/var/log/${NAME}.log" | |
DAEMON="/usr/bin/php" | |
DAEMON_OPTS="/path/to/your/php/script.php" | |
START_OPTS="--start --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ${DAEMON_OPTS}" | |
STOP_OPTS="--stop --pidfile ${PIDFILE}" | |
test -x $DAEMON || exit 0 | |
set -e | |
case "$1" in | |
start) | |
echo -n "Starting ${DESC}: " | |
start-stop-daemon $START_OPTS >> $LOGFILE | |
echo "$NAME." | |
;; | |
stop) | |
echo -n "Stopping $DESC: " | |
start-stop-daemon $STOP_OPTS | |
echo "$NAME." | |
rm -f $PIDFILE | |
;; | |
restart|force-reload) | |
echo -n "Restarting $DESC: " | |
start-stop-daemon $STOP_OPTS | |
sleep 1 | |
start-stop-daemon $START_OPTS >> $LOGFILE | |
echo "$NAME." | |
;; | |
*) | |
N=/etc/init.d/$NAME | |
echo "Usage: $N {start|stop|restart|force-reload}" >&2 | |
exit 1 | |
;; | |
esac | |
exit 0 |
imaimai86 problem with permissions
The code below worked for me.
`[Unit]
Description=Start PHP CometPOS Websocket
Server After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/cpanel/ea-php73/root/bin/php /home/admin/public_html/cometpos.com/login/pos/ws/bin/my-webservices.php
Restart=on-abort
[Install]
WantedBy=multi-user.target`
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Are you using this daemon?
When I run the php script as using following command it writes outputs to terminal, but when I run this using daemon, its not writing the output to the log file.
/usr/bin/php /path/to/php/file
but when i run the daemon, its not writing anything to the log file
Any idea?