Доброго времени суток. Поставил на CentOS7 связку sams2+squid3.3.8 +SquidGuard: 1.4 Berkeley DB 5.3.21. Самс и сквид работают нормально, а вот скуидГуард почему-то не отрабатывает. Посмотрел статус.# systemctl status squidGuard.service
● squidGuard.service - Squid Internet Object Cache and squidGuard web filter
Loaded: loaded (/usr/lib/systemd/system/squidGuard.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2017-05-24 14:06:17 MSK; 16s ago
Process: 1803 ExecStart=/usr/bin/squidGuard-helper start (code=exited, status=6)May 24 14:06:17 fw.domain.local systemd[1]: Starting Squid Internet Object Cache and squidGuard web filter...
May 24 14:06:17 fw.domain.local squidGuard-helper[1803]: Starting squid: [FAILED]
May 24 14:06:17 fw.domain.local systemd[1]: squidGuard.service: control process exited, code=exited status=6
May 24 14:06:17 fw.domain.local systemd[1]: Failed to start Squid Internet Object Cache and squidGuard web filter.
May 24 14:06:17 fw.domain.local systemd[1]: Unit squidGuard.service entered failed state.
May 24 14:06:17 fw.domain.local systemd[1]: squidGuard.service failed.Из строки
Failed to start Squid Internet Object Cache and squidGuard web filter.делаю вывод, что squidGuard-helper пытается запустить squid и squidguard. Но т.к. squid уже запущен, то он его не стартует, а следом и не стартует squidguard. Если я ошибся, то поправьте. Ниже привожу squidGuard-helper
#!/bin/bashPATH=/usr/bin:/sbin:/bin:/usr/sbin
export PATH# Source function library.
. /etc/rc.d/init.d/functions# Source networking configuration.
. /etc/sysconfig/network# Check that networking is up.
[ !${NETWORKING} = "yes" ] && exit 0# check if the squid-squidGuard.conf file is present
[ -f /etc/squid/squid-squidGuard.conf ] || exit 0if [ -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:-"-D"}
SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}# determine the name of the squid binary
[ -f /usr/sbin/squid ] && SQUID=squid
[ -z "$SQUID" ] && exit 0prog="$SQUID"
# determine which one is the cache_swap directory
CACHE_SWAP=`sed -e 's/#.*//g' /etc/squid/squid-squidGuard.conf | \
grep cache_dir | awk '{ print $3 }'`
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/spool/squidRETVAL=0
start() {
for adir in $CACHE_SWAP; do
if [ ! -d $adir/00 ]; then
echo -n "init_cache_dir $adir... "
$SQUID -f /etc/squid/squid-squidGuard.conf -z -F -D 2>/dev/null
fi
done
echo -n $"Starting1 $prog: "
$SQUID $SQUID_OPTS -f /etc/squid/squid-squidGuard.conf 2> /dev/null
### $SQUID_OPTS -f /etc/squid/squid-squidGuard.conf 2> /dev/null
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 /etc/squid/squid-squidGuard.conf >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
$SQUID -k shutdown -f /etc/squid/squid-squidGuard.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
echo
fi
return $RETVAL
}reload() {
$SQUID $SQUID_OPTS -k reconfigure -f /etc/squid/squid-squidGuard.conf
}restart() {
stop
start
}condrestart() {
[ -e /var/lock/subsys/squid ] && restart || :
}rhstatus() {
status $SQUID
$SQUID -k check -f /etc/squid/squid-squidGuard.conf
}probe() {
return 0
}case "$1" in
start)
start
;;stop)
stop
;;#reload)
# reload
# ;;
#
#restart)
# restart
# ;;
#
#condrestart)
# condrestart
# ;;
#
#status)
# rhstatus
# ;;
#
#probe)
# exit 0
# ;;*)
# echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
exit 1
esacexit $?
Где, что поправить, что бы заработало. Заранее всем спасибо.
добавить проверку в старт -если сквид стартонул, прибиваем его и запускаем хелпером поновой ещё раз,
но уже вместе с гуардом: добавит одну строчкуstart() {
[ -f /var/run/squid.pid ] && stop. # эту строку добавить
for adir in $CACHE_SWAP; do
...
и далеено это достаточно кривой костыль,
лучше сделать так, чтобы тот кто запускает сквид первым (не хелпер)
сразу стартовал бы его с гуардом