[squid-users] Installing Squid as a service on Oracle Linux 7.2

Yuri Voinov yvoinov at gmail.com
Tue Dec 15 20:58:22 UTC 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
 
Ok,

I'll just done your job.

See attachements. I wrote squid.service, it takes approx. 30 seconds.

PS. But note: you must install both files manually yourself. Read
manuals anyway.

16.12.15 2:29, Sebastien.Boulianne at cpu.ca пишет:
> Hi,
>
> Your answer didn’t help me.
> Does it have anyone who create a service file for squid and want to
share it.
> I tried the squid.service from the yum package (v3.3.8) but it didn’t
work.
>
> Thanks
>
> Sébastien
> De : squid-users [mailto:squid-users-bounces at lists.squid-cache.org] De
la part de Yuri Voinov
> Envoyé : 15 décembre 2015 10:35
> À : squid-users at lists.squid-cache.org
> Objet : Re: [squid-users] Installing Squid as a service on Oracle
Linux 7.2
>
>
> Squid's source don't contain automatically installed autostart
services for all possible platforms. You can do it yourself.
>
> 15.12.15 21:15,
Sebastien.Boulianne at cpu.ca<mailto:Sebastien.Boulianne at cpu.ca> пишет:
> > Hi,
>
>
>
>       > I hope all is going perfectly for you.
>
>
>
>       > Im trying to install Squid-3.5.12 from source.
>
>       > I followed the doc to compile it properly.
>
>
>
>       > When I ran squid -z, all is perfect.
>
>
>
>       > [root at squid /]# squid -z
>
>       > [root at squid /]# 2015/12/15 10:06:20 kid1| Set Current
>       Directory to /var/spool/squid
>
>       > 2015/12/15 10:06:20 kid1| Creating missing swap directories
>
>       > 2015/12/15 10:06:20 kid1| /var/spool/squid exists
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/00
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/01
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/02
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/03
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/04
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/05
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/06
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/07
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/08
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/09
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/0A
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/0B
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/0C
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/0D
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/0E
>
>       > 2015/12/15 10:06:20 kid1| Making directories in
>       /var/spool/squid/0F
>
>
>
>       > But when I try to « service squid start », it fails... There
>       is no squid.service.
>
>
>
>       > [root at squid /]# service squid start
>
>       > Redirecting to /bin/systemctl start  squid.service
>
>       > Failed to start squid.service: Unit squid.service failed to
>       load: No such file or directory.
>
>
>
>       > I searched for a doc how to create this file but I can't find
>       it.
>
>
>
>       > Can you help me please ?
>
>
>
>       > Sébastien Boulianne
>
>       > Administrateur réseau & système / Network & System
>       Administrator.
>
>       > Gestion des infrastructures / Infrastructure Management.
>
>       > CCNA / CompTIA Server+ / Spécialiste en monitoring.
>
>
>      
sebastien.boulianne at cpu.ca<mailto:sebastien.boulianne at cpu.ca><mailto:sebastien.boulianne at cpu.ca><mailto:sebastien.boulianne at cpu.ca>
>
>
>
>       > [cid:image001.jpg at 01D13720.14E92580]
>
>
>
>
>
>       > 2323, du Versant Nord, suite 100
>
>       > Québec (Québec) G1N 4P4
>
>       > Téléphone : (418) 681 6974 poste 666
>
>       > Ligne sans frais : 1 888 681 6974
>
>       > Télécopieur : (418) 681 1444
>
>
>
>       > Information confidentielle : Le présent message, ainsi que
>       tout fichier qui y est joint, est envoyé à l'intention exclusive
>       de son ou de ses destinataires, il est de nature confidentielle et
>       peut constituer une information privilégiée. Nous avertissons
>       toute personne autre que le destinataire prévu que tout examen,
>       réacheminement, impression, copie, distribution ou autre
>       utilisation de ce message et de tout fichier qui y est joint est
>       strictement interdit. Si vous n'êtes pas le destinataire prévu,
>       veuillez en aviser immédiatement l'expéditeur par retour de
>       courriel et supprimer ce message et tout document joint de votre
>       système. Merci.
>
>
>
>       > Confidentiality Warning : This message and any attachments
>       are intended only for the use of the intended recipient(s), are
>       confidential, and may be privileged. If you are not the intended
>       recipient, you are hereby notified that any review,
>       retransmission, conversion to hard copy, copying, circulation or
>       other use of this message and any attachments is strictly
>       prohibited. If you are not the intended recipient, please notify
>       the sender immediately by return e-mail, and delete this message
>       and any attachments from your system. Thank you.
>
>
>
>       > « Gérer c'est prévoir (voir avant, avoir une vision de
>       l'avenir) »
>
>       > [cid:image002.jpg at 01D13720.14E92580]
>
>
>
>
>
>
>
>
>
>       > _______________________________________________
>
>       > squid-users mailing list
>
>       >
squid-users at lists.squid-cache.org<mailto:squid-users at lists.squid-cache.org>
>
>       > http://lists.squid-cache.org/listinfo/squid-users
>
>
>
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
 
iQEcBAEBCAAGBQJWcH7uAAoJENNXIZxhPexGDbQH/RTjH2cN53mXTAzKsN/zCHD9
b5NfyQsqYHxctnWG1fpZScNubbUP2kwGMEZOd+7ZpImHpt73QktJ1irAgW4Zv5NW
sgraQaCYPDzw1nWOHtDGnHaTI6UWa3BYNHQ6KklauBPcF3TRTAXf1n90CdTFpY0R
3OjJUgGc1nSQhDUN+tCK42JGL02+JkOTSiaOiF/DIBm/Yzs9JzW6J0F5HWsRn5GH
mg++cFx6zBkRm/Av7mV493P1wQxdo0IywV/x1lpu9DSDz+VdsmQTFhD6BUO0eDvB
NZCNJIcfLkFmCpEhR0UCf8OUepLrClgClzSIMcpnwJaf9OEb27+vJ6mKywDSCJE=
=wvB9
-----END PGP SIGNATURE-----

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20151216/106f29e7/attachment-0001.html>
-------------- next part --------------
#!/bin/sh

# chkconfig: 345 99 01
# description: Service for autostart Squid processes
# processname: init.squid
#
# Control Method for Squid (/lib/svc/method/init.squid)
# using SMF or init SysV (Linux).
# Written by Yuri Voinov (C) 2007,2015
#
# ident "@(#)squid.sh    2.5    15/12/01 YV"
#

#############
# Variables #
#############

# Base Squid installation directory
BASE_DIR="/usr/local/squid"

# Squid files paths
SQUID_PATH="$BASE_DIR""/sbin"
SQUID_CONF_PATH="$BASE_DIR""/etc"

# Squid files
SQUID_BIN_FILE="squid"
SQUID_CONF_FILE="squid.conf"

# Squid effective user name
SQUID_USER="squid"

# Set file descriptors limit. See --with-maxfd/--with-filedescriptors option with squid configuration
MAXFD=131072

# LD_LIBRARY_PATH additional setting. Change if another bdb version is installed. Bdb uses by squidGuard
LD_ADD="/opt/csw/bdb48/lib/amd64:/opt/csw/lib/amd64"

# Linux lock directory
LOCK_DIR="/var/lock/subsys"
# Script name for Linux up/down workaround
SVC_SHORT_NAME="$SQUID_BIN_FILE"
SCRIPT_NAME="init.$SVC_SHORT_NAME"

# Log cache to syslog
# Set to Y, if your need
TO_SYSLOG="N"

#
# OS Commands location variables
#
CAT=`which cat`
CUT=`which cut`
ECHO=`which echo`
GETENT=`which getent`
GREP=`which grep`
NEWTASK=`which newtask`
PS=`which ps`
TOUCH=`which touch`
ULIMIT=`which ulimit`
UNAME=`which uname`

# OS release
OS_VER=`$UNAME -r|$CUT -f2 -d"."`
OS_NAME=`$UNAME -s|$CUT -f1 -d" "`

###############
# Subroutines #
###############

check_squid ()
{
 # Check Squid installed
 program=$1
 if [ ! -f "$SQUID_PATH/$program" -a ! -x "$SQUID_PATH/$program" ]; then
  $ECHO "ERROR: Squid not found!"
  $ECHO "Exiting..."
  exit 1
 fi
}

check_os ()
{
 if [ "$OS_NAME" = "SunOS" -a "$OS_VER" -lt "10" ]; then
  if [ "$OS_NAME" != "Linux" ]; then
   $ECHO "ERROR: Unsupported $OS_NAME version $OS_VER. Exiting..."
   exit 1
  fi
 fi
}

checkuser ()
{
# Check squid user
 username=$1
 if [ ! -z "`$GETENT passwd $username`" ]; then
  $ECHO "1"
 else
  $ECHO "0"
 fi
}

checkconf ()
{
# Check Squid config file
 config=$1
 if [ -f "$SQUID_CONF_PATH"/"$config" ]; then
  $ECHO "1"
 else
  $ECHO "0"
 fi
}

checkrcapd ()
{
# Check if rcapd running
 if [ ! -z "$PS -ef|$GREP -v grep|$GREP rcapd" ]; then
  $ECHO "1"
 else
  $ECHO "0"
 fi
}

startproc()
{
# Start Squid
 program=$1

 # Set additional cache logging to syslog, if specified
 if [ "$TO_SYSLOG" = "Y" ]; then
  sl="s"
 else
  sl=""
 fi

 if [ "`checkconf $SQUID_CONF_FILE`" = "1" ]; then
  if [ "`checkuser $SQUID_USER`" = "1" ]; then
   LD_LIBRARY_PATH=$LD_ADD:$LD_LIBRARY_PATH
   export LD_LIBRARY_PATH
   $ULIMIT -Sn $MAXFD
   if [ ! -z "`$CAT /etc/project | $GREP "$SQUID_USER"`" -a "`checkrcapd`" -eq "1" ]; then
    $NEWTASK -p `$CAT /etc/project | $GREP "squid" | $CUT -f1 -d":"` $SQUID_PATH/$program -Y$sl
   else
   $SQUID_PATH/$program -Y$sl
   fi
  else
   $ECHO "ERROR: User $SQUID_USER not found."
   $ECHO "Exiting..."
   exit 3
  fi
 else
  $ECHO "ERROR: Config file $SQUID_CONF_PATH/$SQUID_CONF_FILE not found."
  $ECHO "Exiting..."
  exit 2
 fi
 if [ "$OS_NAME" = "Linux" ]; then
  # Linux up/down workaround
  $TOUCH "$LOCK_DIR"/"$SCRIPT_NAME"
 fi
}

stopproc()
{
# Stop Squid
 program=$1
 if [ "`checkconf $SQUID_CONF_FILE`" = "1" ]; then
  if [ "`checkuser $SQUID_USER`" = "1" ]; then
   $SQUID_PATH/$program -k shutdown
  else
   $ECHO "ERROR: User $SQUID_USER not found."
   $ECHO "Exiting..."
   exit 3
  fi
 else
  $ECHO "ERROR: Config file $SQUID_CONF_PATH/$SQUID_CONF_FILE not found."
  $ECHO "Exiting..."
  exit 2
 fi
 if [ "$OS_NAME" = "Linux" ]; then
 # Linux up/down workaround
  $RM -f "$LOCK_DIR"/"$SCRIPT_NAME"
 fi
}

refreshproc()
{
# Refresh Squid
 program=$1
 if [ "`checkconf $SQUID_CONF_FILE`" = "1" ]; then
  if [ "`checkuser $SQUID_USER`" = "1" ]; then
   $SQUID_PATH/$program -k reconfigure
  else
   $ECHO "ERROR: User $SQUID_USER not found."
   $ECHO "Exiting..."
   exit 2
  fi
 else
  $ECHO "ERROR: Config file $SQUID_CONF_PATH/$SQUID_CONF_FILE not found."
  $ECHO "Exiting..."
  exit 2
 fi
}

##############
# Main block #
##############

# Check Squid installed
check_squid $SQUID_BIN_FILE

# Check OS version
check_os

case "$1" in
"start")
  startproc $SQUID_BIN_FILE
  ;;
"stop")
  stopproc $SQUID_BIN_FILE
  ;;
"refresh")
  refreshproc $SQUID_BIN_FILE
  ;;
"restart")
  stopproc $SQUID_BIN_FILE
  startproc $SQUID_BIN_FILE
  ;;
*)
  $ECHO "Usage: $0 { start | stop | refresh | restart }"
  exit 1
esac

exit 0
#
-------------- next part --------------
[Unit]
Description=Squid Cache Service
After=syslog.target

[Service]
ExecStart=/usr/lib/systemd/scripts/init.squid start
ExecStop=/usr/lib/systemd/scripts/init.squid stop
Restart=on-abort

[Install]
WantedBy=multi-user.target


More information about the squid-users mailing list