* [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