* [sisyphus] ez-ipupdate: критика @ 2004-05-29 18:27 Yura Zotov 2004-05-31 18:43 ` [sisyphus] " Michael Shigorin 2004-06-01 13:43 ` [sisyphus] " sergey ivanov 0 siblings, 2 replies; 4+ messages in thread From: Yura Zotov @ 2004-05-29 18:27 UTC (permalink / raw) To: Sisyphus List [-- Attachment #1: Type: text/plain, Size: 650 bytes --] Обнаружил, что инитскрипт для ez-ipupdate срабатывает с ошибками. Разборки выявили как банальные опечатки, так и более принципиальные недочёты. На основе этого скрипта и /etc/init.d/template я написал новый скрипт, который работает как положено. Он прицеплен. Предлагаю включить в пакет ez-ipupdate новый скрипт вместо старого. P.S. Не совсем понял, какой смысл в выделении файла ez-ipupdate.pid в отдельный каталог /var/run/ez-ipupdate/. По-моему его было бы правильнее держать вместе с остальными pid-файлами в /var/run/. Ведь с lock-файлом вы (обращение к мантейнеру пакета) так и поступали, оставляя его в /var/lock/subsys/. -- Юрий А. Зотов [-- Attachment #2: ez-ipupdate --] [-- Type: text/plain, Size: 1952 bytes --] #!/bin/sh # # ez-ipupdate Starts and stops the ez-ipupdate daemon # # chkconfig: - 55 45 # # processname: ez-ipupdate # description: Check and update your IP to dynamic DNS Server. # pidfile: /var/run/ez-ipupdate/ez-ipudpate.pid # config: /etc/ez-ipupdate.conf EZ_CONFIG=/etc/ez-ipupdate.conf EZ_BIN=/usr/sbin/ez-ipupdate EZ_PID=/var/run/ez-ipupdate/ez-ipupdate.pid PROG=ez-ipupdate LOCKFILE="/var/lock/subsys/$PROG" # Make sure relevant files exist [ -x "$EZ_BIN" -a -s "$EZ_CONFIG" ] || exit 0 # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 RETVAL=0 start() { # Start daemons. start_daemon --pidfile "$EZ_PID" --lockfile "$LOCKFILE" -- "$EZ_BIN" --daemon --config-file "$EZ_CONFIG" --pid-file "$EZ_PID" RETVAL=$? return $RETVAL } stop() { # Stop daemons. stop_daemon --pidfile "$EZ_PID" --lockfile "$LOCKFILE" -- "$PROG" RETVAL=$? return $RETVAL } reload() { # Reload config by sending a SIGHUP. msg_reloading "$PROG" stop_daemon --pidfile "$EZ_PID" -HUP -- "$PROG" RETVAL=$? echo } restart() { stop start RETVAL=$? } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; condstop) if [ -e "$LOCKFILE" ]; then stop fi ;; condrestart) if [ -e "$LOCKFILE" ]; then restart fi ;; condreload) if [ -e "$LOCKFILE" ]; then reload fi ;; status) status --pidfile $EZ_PID $PROG RETVAL=$? if [ -r $EZ_CONFIG ]; then ez_cache=`grep -E '^[[:space:]]*cache-file' $EZ_CONFIG | cut -d "=" -f2` [ -n "$ez_cache" ] && \ echo "Last IP update: "`cat $ez_cache | cut -d "," -f2` fi ;; *) msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}" RETVAL=1 esac exit $RETVAL ^ permalink raw reply [flat|nested] 4+ messages in thread
* [sisyphus] Re: ez-ipupdate: критика 2004-05-29 18:27 [sisyphus] ez-ipupdate: критика Yura Zotov @ 2004-05-31 18:43 ` Michael Shigorin 2004-05-31 19:57 ` Yura Zotov 2004-06-01 13:43 ` [sisyphus] " sergey ivanov 1 sibling, 1 reply; 4+ messages in thread From: Michael Shigorin @ 2004-05-31 18:43 UTC (permalink / raw) To: Sisyphus List On Sat, May 29, 2004 at 10:27:05PM +0400, Yura Zotov wrote: > P.S. Не совсем понял, какой смысл в выделении файла > ez-ipupdate.pid в отдельный каталог /var/run/ez-ipupdate/. Права? -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] Re: ez-ipupdate: критика 2004-05-31 18:43 ` [sisyphus] " Michael Shigorin @ 2004-05-31 19:57 ` Yura Zotov 0 siblings, 0 replies; 4+ messages in thread From: Yura Zotov @ 2004-05-31 19:57 UTC (permalink / raw) To: Sisyphus List On Mon, May 31, 2004 at 09:43:08PM +0300, Michael Shigorin wrote: > On Sat, May 29, 2004 at 10:27:05PM +0400, Yura Zotov wrote: > > P.S. Не совсем понял, какой смысл в выделении файла > > ez-ipupdate.pid в отдельный каталог /var/run/ez-ipupdate/. > > Права? Да, с этим я разобрался сам. Демон работает с правами пользователя, поэтому писать в /var/run не может. Вот ему и сделали отдельный каталог, где он хозяин. -- Юрий А. Зотов ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] ez-ipupdate: критика 2004-05-29 18:27 [sisyphus] ez-ipupdate: критика Yura Zotov 2004-05-31 18:43 ` [sisyphus] " Michael Shigorin @ 2004-06-01 13:43 ` sergey ivanov 1 sibling, 0 replies; 4+ messages in thread From: sergey ivanov @ 2004-06-01 13:43 UTC (permalink / raw) To: ALT Linux Sisyphus discussion list Yura Zotov пишет: >Обнаружил, что инитскрипт для ez-ipupdate срабатывает с ошибками. >Разборки выявили как банальные опечатки, так и более >принципиальные недочёты. На основе этого скрипта и >/etc/init.d/template я написал новый скрипт, который работает как >положено. Он прицеплен. Предлагаю включить в пакет ez-ipupdate >новый скрипт вместо старого. > >P.S. Не совсем понял, какой смысл в выделении файла >ez-ipupdate.pid в отдельный каталог /var/run/ez-ipupdate/. >По-моему его было бы правильнее держать вместе с остальными >pid-файлами в /var/run/. Ведь с lock-файлом вы (обращение к >мантейнеру пакета) так и поступали, оставляя его в >/var/lock/subsys/. > > Большое спасибо за критику и за предложенный скрипт. Я попытался разобраться с pid-файлом. Нашел способ, как его можно держать в /var/run а не в специальной поддиректории. Для этого нужно: 1) передать создание этого файла start-stop-daemon'у, который работает с правами root; 2) для этого передать с помощью хитрости, например, приклеив к параметру $EZ_PID ключик --make-pidfile, который функциями /etc/rc.d/init.d/functions напрямую не поддерживается; 3) и потом ещё надо отнять у ez-ipupdate функциональность демона, отсоединяющегося от консоли в которой был запущен, иначе start-stop-daemon получает pid не того процесса, который будет работать, а того который создается для запуска этого демона и тут же завершается. Поэтому я решил что лучше оставить с pid-файлами как есть, то есть создать для них поддиректорию в которую имеет право писать непривилегированный юзер. Однако мне показалось, что примерно ту же функциональность, что и pid-файлы, обеспечивают lock-файлы. И тогда непонятно, чем может быть оправдано одновременное применение /var/lock/subsystem/* файлов и pid-файлов в одном скрипте. Я пробовал, и у меня функции condrestart и condreload хорошо работали и с ипользованием просто пути к исполнимой программе /usr/sbin/ez-ipupdate, и с использованием pid-файлов. Однако я не решился удалить из стартового скрипта все упоминания об lock-файлах, так как не нашел документации или описаний, из которых можно было бы понять к чему это может привести. Если кто-нибудь подскажет, буду очень благодарен. Исправленная версия ez-ipupdate направлена в incoming. С уважением, Сергей Иванов. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-06-01 13:43 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2004-05-29 18:27 [sisyphus] ez-ipupdate: критика Yura Zotov 2004-05-31 18:43 ` [sisyphus] " Michael Shigorin 2004-05-31 19:57 ` Yura Zotov 2004-06-01 13:43 ` [sisyphus] " sergey ivanov
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git