Startup script and cronolog log segmentation

Startup script and cronolog log segmentation

Related reference materials: http://man.cx/start-stop-daemon(8) http://cronolog.org/usage.html http://book.opensourceproject.org.cn/lamp/ruby/railscook/opensource/0596527314/i_0596527314_chp_13_sect_6.html Install cronolog cronolog is a simple log splitting plug-in. A common classic application is to split a single huge log of Apache and save and install it by date: -------------- -------------------------------------------------- ------------

 $ wget 
http://cronolog.org/download/cronolog-1.6.2.tar.gz
$ tar xvzf cronolog-1.6.2.tar.gz
$ cd cronolog-1.6.2
$ ./configure --prefix=/usr/local
$ make
$ sudo make install

-------------------------------------------------- --------------------------- Check where it is installed (which also requires sudo permission): which cronolog Simple test $ echo "This is a test." |/usr/bin/cronolog -o/var/log/www/%Y/access.%m-%d-%y.log "-o" command can be used to create a file without adding an error ok! Write a script file cam-hello with no extension for the self-starting program for your own web server: ------------------------------- ----------------------------------------------

#!/bin/sh
# example python daemon starter script
# based on skeleton from Debian GNU/Linux
# cliechti@gmx.net
# place the daemon scripts in a folder accessible by root./usr/local/sbin is a good idea

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON="/usr/local/hello/python_server/HelloServer"
NAME=cam-hello
DESC="cam hello"
CRONOLOG="/usr/local/sbin/cronolog/var/log/www/cam/%Y/access.%m-%d-%y.log"
test -f $DAEMON || exit 0

set -e
export PIDFILE=/var/run/${NAME}.pid
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --make-pidfile --pidfile ${PIDFILE} --exec "$DAEMON" | $CRONOLOG &
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --pidfile ${PIDFILE} | $CRONOLOG
#/--exec $DAEMON
echo "$NAME."
if [-f ${PIDFILE} ]; then
rm ${PIDFILE}
fi
### rest of shutdown ### 
exit 0
;;
#reload)
#
# If the daemon can reload its config files on the fly
# for example by sending it SIGHUP, do it here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this a do-nothing entry.
#
# echo "Reloading $DESC configuration files."
# start-stop-daemon --stop --signal 1 --quiet --pidfile/
#/var/run/$NAME.pid --exec $DAEMON
#;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: "
start-stop-daemon --stop --pidfile ${PIDFILE} 
# --exec $DAEMON
sleep 1
start-stop-daemon --start --make-pidfile --pidfile ${PIDFILE} --exec $DAEMON | $CRONOLOG &
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

-------------------------------------------------- --------------------------- --make-pidfile can create a self-starting file, which is misled by the imperfect program on the Internet, which can only start but not Stop service ==! The python script needs to be changed to an executable file, otherwise the log file cannot be run. The log file has a buffer and can be written to a certain length. It is very speechless (I thought that python can't do this in the experiment...) Deploy the self-starting program and copy it to/etc/rc .d/init.d/Modify the script file chmod 777 cam-hello Register:/etc/init.d# sudo update-rc.d cam defaults If you want to delete the start/stop links, then: sudo update-rc.d -f cam remove (Note: chkconfig --add autoruntest add service command is wrong, don’t use it! There is a loop between service apache2 and rsyslog if stopped) After the deployment is successful

/etc/init.d/cam-hello start
/etc/init.d/cam-hello restart
/etc/init.d/cam-hello stop
Reference: https://cloud.tencent.com/developer/article/1067241 startup script and cronolog log segmentation-Cloud + Community-Tencent Cloud