How to register a package as Daemon service?

Issues related to applications and software problems
Post Reply
Kunwar
Posts: 55
Joined: 2014/08/28 23:21:43

How to register a package as Daemon service?

Post by Kunwar » 2016/05/10 15:32:31

I just installed squid 5.5.19... I can start squid by issuing the command squid but I can seems to get it registered at service.

The configuration file in /etc/init.d is named as squid and has the following code:
The code was copied from somewhere.

Code: Select all

#!/bin/bash
# chkconfig: - 90 25
# pidfile: /var/run/squid.pid
# config: /etc/squid/squid.conf
#
### BEGIN INIT INFO
# Provides: squid
# Short-Description: starting and stopping Squid Internet Object Cache
# Description: Squid - Internet Object Cache. Internet object caching is \
#       a way to store requested Internet objects (i.e., data available \
#       via the HTTP, FTP, and gopher protocols) on a system closer to the \
#       requesting site than to the source. Web browsers can then use the \
#       local Squid cache as a proxy HTTP server, reducing access time as \
#       well as bandwidth consumption.
### END INIT INFO


PATH=/usr/bin:/sbin:/bin:/usr/sbin
export PATH

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/squid ]; then
. /etc/sysconfig/squid
fi

# don't raise an error if the config file is incomplete
# set defaults instead:
SQUID_OPTS=${SQUID_OPTS:-""}
SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}
SQUID_CONF=${SQUID_CONF:-"/etc/squid/squid.conf"}
SQUID_PIDFILE_DIR="/var/run/squid"
SQUID_USER="squid"
SQUID_DIR="squid"

# determine the name of the squid binary
[ -f /usr/sbin/squid ] && SQUID=squid

prog="$SQUID"

# determine which one is the cache_swap directory
CACHE_SWAP=`sed -e 's/#.*//g' $SQUID_CONF | \
grep cache_dir | awk '{ print $3 }'`

RETVAL=0

probe() {
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1

[ `id -u` -ne 0 ] && exit 4

# check if the squid conf file is present
[ -f $SQUID_CONF ] || exit 6
}

start() {
# Check if $SQUID_PIDFILE_DIR exists and if not, lets create it and give squid permissions.
if [ ! -d $SQUID_PIDFILE_DIR ]; then mkdir $SQUID_PIDFILE_DIR; chown -R $SQUID_USER.$SQUID_DIR $SQUID_PIDFILE_DIR; fi
probe

parse=`$SQUID -k parse -f $SQUID_CONF 2>&1`
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
 echo -n $"Starting $prog: "
 echo_failure
 echo
 echo "$parse"
 return 1
fi
for adir in $CACHE_SWAP; do
 if [ ! -d $adir/00 ]; then
 	echo -n "init_cache_dir $adir... "
 	$SQUID -z -F -f $SQUID_CONF >> /var/log/squid/squid.out 2>&1
 fi
done
echo -n $"Starting $prog: "
$SQUID $SQUID_OPTS -f $SQUID_CONF >> /var/log/squid/squid.out 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
 timeout=0;
 while :; do
 	[ ! -f /var/run/squid.pid ] || break
 	if [ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]; then
   RETVAL=1
   break
 	fi
 	sleep 1 && echo -n "."
 	timeout=$((timeout+1))
 done
fi
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID
[ $RETVAL -eq 0 ] && echo_success
[ $RETVAL -ne 0 ] && echo_failure
echo
return $RETVAL
}

stop() {
echo -n $"Stopping $prog: "
$SQUID -k check -f $SQUID_CONF >> /var/log/squid/squid.out 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
 $SQUID -k shutdown -f $SQUID_CONF &
 rm -f /var/lock/subsys/$SQUID
 timeout=0
 while :; do
 	[ -f /var/run/squid.pid ] || break
 	if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
   echo
   return 1
 	fi
 	sleep 2 && echo -n "."
 	timeout=$((timeout+2))
 done
 echo_success
 echo
else
 echo_failure
 if [ ! -e /var/lock/subsys/$SQUID ]; then
 	RETVAL=0
 fi
 echo
fi
rm -rf $SQUID_PIDFILE_DIR/*
return $RETVAL
}

reload() {
$SQUID $SQUID_OPTS -k reconfigure -f $SQUID_CONF
}

restart() {
stop
rm -rf $SQUID_PIDFILE_DIR/*
start
}

condrestart() {
[ -e /var/lock/subsys/squid ] && restart || :
}

rhstatus() {
status $SQUID && $SQUID -k check -f $SQUID_CONF
}


case "$1" in
start)
start
;;

stop)
stop
;;

reload|force-reload)
reload
;;

restart)
restart
;;

condrestart|try-restart)
condrestart
;;

status)
rhstatus
;;

probe)
probe
;;

*)
echo $"Usage: $0 {start|stop|status|reload|force-reload|restart|try-restart|probe}"
exit 2
esac

exit $?

Where did I go wrong?

User avatar
TrevorH
Forum Moderator
Posts: 28571
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: How to register a package as Daemon service?

Post by TrevorH » 2016/05/10 15:41:24

We only support what we ship and we ship squid as a package which you can install using yum install squid

Also, CentOS 7 uses systemd so you will most likely need a systemd unit file not an initscript if you wish to carry on down the unsupported path you're currently embarked upon.
CentOS 6 will die in November 2020 - migrate sooner rather than later!
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 is dead, do not use it.
Full time Geek, part time moderator. Use the FAQ Luke

stevemowbray
Posts: 505
Joined: 2012/06/26 14:20:47

Re: How to register a package as Daemon service?

Post by stevemowbray » 2016/05/10 15:44:11

CentOS 7 uses systemd, not init/upstart.

Why are you not just installing squid from the base repository with "yum install squid", in which case you can just "systemctl enable squid"?

Kunwar
Posts: 55
Joined: 2014/08/28 23:21:43

Re: How to register a package as Daemon service?

Post by Kunwar » 2016/05/10 15:58:06

It's just a testing server, I am trying to test SSL mimicking feature that comes with 3.5 and above... so This is the why I am doing it this way. The squid package on yum is 3.3.8 which doesn't support SSL related features. Thanks for directing me... I'll try to do it using systemd.

Post Reply

Return to “CentOS 7 - Software Support”