freebsd 7.3
Нужны три копии Squid'a, соответственно с своими конфигами, кэшем и логами. Сами конфиги пути до собственных логов и кэша настроены и вручную все отрабатывает. Осталось сделать им автостарт. Сделал копию скрипта сквида и пытаюсь настроить под запуск второй копии, банально изменил имена и подправил пути:-------------------
#!/bin/sh
#
# $FreeBSD: ports/www/squid31/files/squid.in,v 1.5 2009/12/13 00:21:25 miwi Exp $
#
# PROVIDE: squidh
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Note:
# Set "squidh_enable=yes" in either /etc/rc.conf, /etc/rc.conf.local or
# /etc/rc.conf.d/squid to activate Squid.
squidh_checkrunning() {
${command} ${squidh_flags} -k check 2>/dev/null
}squidh_setfib() {
sysctl net.fibs >/dev/null 2>&1 || return 0
if [ "x${squidh_fib}" != "xNONE" ]; then
command="setfib -F ${squidh_fib} ${command}"
else
return 0
fi
}squidh_stop() {
echo "Stopping ${name}."
${command} ${squidh_flags} -k shutdown
run_rc_command poll
}. /etc/rc.subr
name=squidh
rcvar=${name}_enablecommand=/usr/local/sbin/squid
extra_commands=reload
reload_cmd="${command} ${squidh_flags} -k reconfigure"
start_precmd="squidh_setfib"
stop_precmd="squidh_checkrunning"
stop_cmd="squidh_stop"load_rc_config ${name}
squidh_chdir=${squidh_chdir:-"/usr/local/squidh"}
squidh_conf=${squidh_conf:-"/usr/local/etc/squid/squidh.conf"}
squidh_enable=${squidh_enable:-"NO"}
squidh_fib=${squidh_fib:-"NONE"}
squidh_pidfile=${squidh_pidfile:-"/usr/local/squidh/squidh.pid"}
squidh_user=${squidh_user:-squid}pidfile=${squidh_pidfile}
required_dirs=${squidh_chdir}required_files=${squidh_conf}
run_rc_command "$1"
------------------------------в rc.conf: squidh_enable="YES"
делаю /usr/local/etc/rc.d/squidh start
пишет starting squidh
никаких ошибок, но в логах основного сквида (не копии): squid already runningи конечно же в итоге ничего не запускается
не силен в скриптах, но подозреваю что скрипт просто видит что сквид уже запущен ?!
rc.conf покажи касаемо сквида
> rc.conf покажи касаемо сквидадэк там только squid_enable="YES" и уж не знаю нужен ли squidh_enable="YES"
за pid-файлами последите
> за pid-файлами последитев плане?
>> за pid-файлами последите
> в плане?убейте все squid-ы , очистите их pid-файлы и запускайте по одному и смотрите что бы каждый записывал номер процесса в свой pid-файл, если кто-то полезет не в свой, то с его конфигом и стартовым скриптом и разбирайтесь.
>>> за pid-файлами последите
>> в плане?
> убейте все squid-ы , очистите их pid-файлы и запускайте по одному и
> смотрите что бы каждый записывал номер процесса в свой pid-файл, если
> кто-то полезет не в свой, то с его конфигом и стартовым
> скриптом и разбирайтесь.врядли )
squidh_pidfile=${squidh_pidfile:-"/usr/local/squidh/squidh.pid"}
squidh_user=${squidh_user:-squid}pidfile=${squidh_pidfile}
required_dirs=${squidh_chdir}я бы первым делом проверил порт, в скрипте я его не вижу ))
>[оверквотинг удален]
>>> в плане?
>> убейте все squid-ы , очистите их pid-файлы и запускайте по одному и
>> смотрите что бы каждый записывал номер процесса в свой pid-файл, если
>> кто-то полезет не в свой, то с его конфигом и стартовым
>> скриптом и разбирайтесь.
> врядли )
> squidh_pidfile=${squidh_pidfile:-"/usr/local/squidh/squidh.pid"}
> squidh_user=${squidh_user:-squid}
> pidfile=${squidh_pidfile}
> required_dirs=${squidh_chdir}это я видел , но тем не менее ...
> я бы первым делом проверил порт, в скрипте я его не вижу
> ))порт в конфиге задается, хотя в скрипте тоже можно.
http://www.opennet.me/openforum/vsluhforumID1/90072.html
>[оверквотинг удален]
>> смотрите что бы каждый записывал номер процесса в свой pid-файл, если
>> кто-то полезет не в свой, то с его конфигом и стартовым
>> скриптом и разбирайтесь.
> врядли )
> squidh_pidfile=${squidh_pidfile:-"/usr/local/squidh/squidh.pid"}
> squidh_user=${squidh_user:-squid}
> pidfile=${squidh_pidfile}
> required_dirs=${squidh_chdir}
> я бы первым делом проверил порт, в скрипте я его не вижу
> ))pid'ы у каждого свои, это я сразу проверил, порты в конфигах тоже у каждого свои.
Вообщем я попытался написать скрипт собственноручно и попроще, он работает, но не стартует при запуске системы:
--------------------
#!/bin/sh
#echo -n 'squidh'
case "$1" in
start)
/usr/local/sbin/squid -f /usr/local/etc/squid/squidh.conf
;;
stop)
/usr/local/sbin/squid -k shutdown -f /usr/local/etc/squid/squidh.conf
;;
*)
echo "Usage: 'basename $0' {start|stop}" >&2
exit 64
;;
esacexit 0
-------------------------
лежит в rc.d, chmod на нем 755
>[оверквотинг удален]
> ;;
> *)
> echo "Usage: 'basename $0'
> {start|stop}" >&2
> exit 64
> ;;
> esac
> exit 0
> -------------------------
> лежит в rc.d, chmod на нем 755а имя файла на .sh заканчивается?
там вроде есть требования по оформлению скриптов.
> pid'ы у каждого свои, это я сразу проверил, порты в конфигах тоже
> у каждого свои.
> Вообщем я попытался написать скрипт собственноручно и попроще, он работает, но не
> стартует при запуске системы:
> --------------------
> #!/bin/sh
> #. /etc/rc.subr
>[оверквотинг удален]
> ;;
> *)
> echo "Usage: 'basename $0'
> {start|stop}" >&2
> exit 64
> ;;
> esac
> exit 0
> -------------------------
> лежит в rc.d, chmod на нем 755Вообще почитайте - http://www.freebsd.org.ua/doc/ru_RU.KOI8-R/articles/rc-scrip...
>[оверквотинг удален]
>> *)
>> echo "Usage: 'basename $0'
>> {start|stop}" >&2
>> exit 64
>> ;;
>> esac
>> exit 0
>> -------------------------
>> лежит в rc.d, chmod на нем 755
> Вообще почитайте - http://www.freebsd.org.ua/doc/ru_RU.KOI8-R/articles/rc-scrip...фууух, осилил... всем спасибо, но далеко не расходитесь :)
> фууух, осилил... всем спасибо, но далеко не расходитесь :)Вы бы пример рабочий привели, дабы другие ищущие находили
решение.
>> фууух, осилил... всем спасибо, но далеко не расходитесь :)
> Вы бы пример рабочий привели, дабы другие ищущие находили
> решение.да все как всегда тривиально, главное внимательно соблюсти синтаксис
----------
#!/bin/sh
#
# PROVIDE: squidh
# REQUIRE: LOGIN named dnsmasq squidt
# KEYWORD: shutdown
#squidh_enable=${squidh_enable-"NO"}
squidh_flags=${squidh_flags-""}
squidh_pidfile=${squidh_pidfile-"/usr/local/squidh/squidh.pid"}. /etc/rc.subr
name="squidh"
rcvar=`set_rcvar`
command="/usr/local/sbin/squid"
command_args=" -f /usr/local/etc/squid/squidh.conf"load_rc_config $name
pidfile="${squidh_pidfile}"start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${squidh_flags} ${command_args}"
run_rc_command "$1"
--------------------
простецкий скрипт получился, но все что надо делает, автостартует после демонов указанных в "REQUIRE:" (squidt еще одна подобная копия сквида) и останавливается после shutdown,
лежит в rc.d, chmod 555, pid-файл отдельный, создается из конфига, так же как и логи и кэш, да и не забыть в rc.conf соответ.запись внести, в данном случае - squidh_enable=YES