Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
скрипты init.d
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
serg_sk
Guru
Guru


Joined: 10 Jul 2004
Posts: 315
Location: Ukraine

PostPosted: Sat May 27, 2006 9:23 pm    Post subject: скрипты init.d Reply with quote

Собсно поломался сабж. Кажется случилось это после того как сервак два раза жестоко заребутили.
Проблема в том, если при запуске, например dhcp, если есть где-то ошибка в конфигах и сервис не стартовал, то потом его с помощью скриптов из init.d не стартанеш. Вот так примерно:
Code:
router ~ # /etc/init.d/dhcp start
 * Starting dhcp ...                                                            [ ok ]

Потом делаю в конфиге ошибку, и запускаю.
Code:
router ~ # /etc/init.d/dhcp start
 * Starting dhcp ...                                                            [ !! ]

Ошибку исправляю, и запускаю опять.
Code:
router ~ # /etc/init.d/dhcp start
router ~ # /etc/init.d/dhcp stop
 * ERROR:  "dhcp" has not yet been started.

Не помогает даже zap.

Пробовал пересобирать baselaout и прочее. Потом сделал emerge -e system. Результата никакого.
Причем так глючит не только dhcp. :/
Вот если запуск и останов происходят нормально, то потом его опять можно запустить, если же при запуске failed, то все.

Кто что посоветует?
_________________
Sorry for my bad englilsh. :)
irc.freenode.net #fluxbox-ru - Fluxbox russian speaking channel.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Sun May 28, 2006 9:10 am    Post subject: Reply with quote

видимо, дело в том, что потерялся pid процесса, соответственно, информация о факте присутствия процесса в запущенном состоянии отсутствует
надо смотреть или в conf.d или прошерстить сам init скрипт на предмет такой проверки
если pid-файл лежит в /var/run/some_dir, а не каталогом выше, то надо проверить наличие some_dir и его права для процесса
Back to top
View user's profile Send private message
serg_sk
Guru
Guru


Joined: 10 Jul 2004
Posts: 315
Location: Ukraine

PostPosted: Sun May 28, 2006 1:30 pm    Post subject: Reply with quote

fank wrote:
видимо, дело в том, что потерялся pid процесса, соответственно, информация о факте присутствия процесса в запущенном состоянии отсутствует
надо смотреть или в conf.d или прошерстить сам init скрипт на предмет такой проверки
если pid-файл лежит в /var/run/some_dir, а не каталогом выше, то надо проверить наличие some_dir и его права для процесса

fank, дело в том что он не запускается и пида там вообще нету. :/
Именно после того как сервис стартанул со сбоем, его уже потом скриптами не запустишь, только вручную.
_________________
Sorry for my bad englilsh. :)
irc.freenode.net #fluxbox-ru - Fluxbox russian speaking channel.
Back to top
View user's profile Send private message
jafdet
n00b
n00b


Joined: 28 May 2006
Posts: 1

PostPosted: Sun May 28, 2006 7:08 pm    Post subject: Reply with quote

Добавь -x после !#/bin/bash
то есть !#/bin/bash -x
и посмотри на чем валится
Back to top
View user's profile Send private message
serg_sk
Guru
Guru


Joined: 10 Jul 2004
Posts: 315
Location: Ukraine

PostPosted: Sun May 28, 2006 9:08 pm    Post subject: Reply with quote

jafdet wrote:
Добавь -x после !#/bin/bash
то есть !#/bin/bash -x
и посмотри на чем валится

Протестировал на самбе. Не хотел просто трогать dhcp и прочите необходимые сервисы.
У самбы 100% рабочий конфиг. Вот что получилось:
Code:
+ [[ '' != \y\e\s ]]
+ source /sbin/functions.sh
++ RC_GOT_FUNCTIONS=yes
++ '[' -f /etc/conf.d/rc ']'
++ source /etc/conf.d/rc
+++ RC_TTY_NUMBER=11
+++ RC_PARALLEL_STARTUP=yes
+++ RC_NET_STRICT_CHECKING=no
+++ RC_VOLUME_ORDER='raid evms lvm dm'
+++ RC_USE_FSTAB=no
+++ RC_FORCE_AUTO=no
+++ RC_DEVICES=auto
+++ RC_DEVICE_TARBALL=no
+++ RC_DEVFSD_STARTUP=yes
+++ RC_RETRY_KILL=yes
+++ RC_RETRY_TIMEOUT=1
+++ RC_RETRY_COUNT=5
+++ RC_FAIL_ON_ZOMBIE=no
+++ svcdir=/var/lib/init.d
+++ svcmount=no
+++ svcfstype=tmpfs
+++ svcsize=2048
++ SVCDIR=/var/lib/supervise
++ svclib=/lib/rcscripts
++ svcdir=/var/lib/init.d
++ svcmount=no
++ svcfstype=tmpfs
++ svcsize=2048
++ deptypes='need use'
++ ordtypes='before after'
++ RC_QUIET_STDOUT=no
++ RC_VERBOSE=no
++ RC_NOCOLOR=no
++ RC_ENDCOL=yes
++ RC_TTY_NUMBER=11
++ RC_PARALLEL_STARTUP=yes
++ RC_NET_STRICT_CHECKING=no
++ RC_VOLUME_ORDER='raid evms lvm dm'
++ RC_USE_FSTAB=no
++ RC_USE_CONFIG_PROFILE=yes
++ RC_FORCE_AUTO=no
++ RC_DEVICES=auto
++ RC_INDENTATION=
++ RC_DEFAULT_INDENT=2
++ RC_DOT_PATTERN=
++ import_addon splash-functions.sh
++ local addon=/lib/rcscripts/addons/splash-functions.sh
++ [[ -r /lib/rcscripts/addons/splash-functions.sh ]]
++ return 1
++ '[' -f /sbin/splash-functions.sh ']'
++ source /sbin/splash-functions.sh
+++ spl_cachedir=/lib/splash/cache
+++ spl_tmpdir=/lib/splash/tmp
+++ spl_cachesize=4096
+++ spl_cachetype=tmpfs
+++ spl_fifo=/lib/splash/cache/.splash
+++ spl_pidfile=/lib/splash/cache/daemon.pid
+++ [[ /sbin/runscript.sh == \/\s\b\i\n\/\d\e\p\s\c\a\n\.\s\h ]]
++ import_addon profiling-functions.sh
++ local addon=/lib/rcscripts/addons/profiling-functions.sh
++ [[ -r /lib/rcscripts/addons/profiling-functions.sh ]]
++ return 1
++ [[ '' == \y\e\s ]]
++ NET_FS_LIST='afs cifs coda davfs gfs ncpfs nfs nfs4 ocfs2 shfs smbfs'
++ '[' -z '' ']'
++ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.4.5
+++ /sbin/consoletype
++ '[' pty = serial ']'
++ for arg in '"$@"'
++ case "${arg}" in
++ for arg in '"$@"'
++ case "${arg}" in
++ for arg in '"$@"'
++ case "${arg}" in
++ '[' -r /proc/cmdline ']'
++ setup_defaultlevels
++ get_bootconfig
++ local copt=
++ local newbootlevel=
++ local newsoftlevel=
++ [[ -r /proc/cmdline ]]
++ for copt in '$(</proc/cmdline)'
++ case "${copt%=*}" in
++ for copt in '$(</proc/cmdline)'
++ case "${copt%=*}" in
++ for copt in '$(</proc/cmdline)'
++ case "${copt%=*}" in
++ for copt in '$(</proc/cmdline)'
++ case "${copt%=*}" in
++ for copt in '$(</proc/cmdline)'
++ case "${copt%=*}" in
++ for copt in '$(</proc/cmdline)'
++ case "${copt%=*}" in
++ [[ -n '' ]]
++ export BOOTLEVEL=boot
++ BOOTLEVEL=boot
++ [[ -n '' ]]
++ export DEFAULTLEVEL=default
++ DEFAULTLEVEL=default
++ return 0
++ get_bootparam noconfigprofile
++ local x copt params retval=1
++ '[' '!' -r /proc/cmdline ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' ro = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' real_root = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' video = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' splash = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' quiet = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' CONSOLE = gentoo ']'
++ return 1
++ get_bootparam configprofile
++ local x copt params retval=1
++ '[' '!' -r /proc/cmdline ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' ro = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' real_root = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' video = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' splash = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' quiet = gentoo ']'
++ for copt in '$(< /proc/cmdline)'
++ '[' CONSOLE = gentoo ']'
++ return 1
++ '[' yes = yes -a -n default ']'
++ '[' -d /etc/runlevels/boot.default -o -L /etc/runlevels/boot.default ']'
++ '[' -z '' ']'
++ '[' -f /var/lib/init.d/softlevel ']'
++ export SOFTLEVEL=default
++ SOFTLEVEL=default
++ return 0
++ [[ -n '' ]]
++ COLS=0
++ ((  COLS == 0  ))
+++ stty size
+++ cut '-d ' -f2
++ COLS=88
++ ((  COLS > 0  ))
++ [[ yes == yes ]]
++ ENDCOL=''
++ [[ no == yes ]]
++ GOOD=''
++ WARN=''
++ BAD=''
++ HILITE=''
++ BRACKET=''
++ NORMAL=''
+ [[ '' != \y\e\s ]]
+ source /lib/rcscripts/sh/rc-services.sh
++ RC_GOT_SERVICES=yes
++ '[' yes '!=' yes ']'
++ '[' '' '!=' yes ']'
++ /sbin/depscan.sh
 * Caching service dependencies ...
  [ ok ]
++ source /var/lib/init.d/deptree
+++ rc_type_ineed=2
+++ rc_type_needsme=3
+++ rc_type_iuse=4
+++ rc_type_usesme=5
+++ rc_type_ibefore=6
+++ rc_type_iafter=7
+++ rc_type_broken=8
+++ rc_type_parallel=9
+++ rc_type_mtime=10
+++ rc_index_scale=11
+++ declare -a RC_DEPEND_TREE
+++ RC_DEPEND_TREE[0]=76
+++ RC_DEPEND_TREE[11]=checkroot
+++ RC_DEPEND_TREE[11+2]=
.............................................
+++ RC_DEPEND_TREE[836+4]=
+++ RC_DEPEND_TREE[836+5]='clamd esound fakeidentd lisa mysql nscd portmap reslisa rsyncd svscan udhcp'
+++ RC_DEPEND_TREE[836+6]=
+++ RC_DEPEND_TREE[836+7]='ip6tables iptables'
+++ RC_DEPEND_TREE[836+8]=
+++ RC_DEPEND_TREE[836+9]=
+++ RC_DEPEND_TREE[836+10]=
+++ RC_GOT_DEPTREE_INFO=yes
+++ LOGGER_SERVICE=syslog-ng
++ '[' yes '!=' yes ']'
++ rc_name=
++ rc_index=0
++ rc_ineed=
++ rc_needsme=
++ rc_iuse=
++ rc_usesme=
++ rc_ibefore=
++ rc_iafter=
++ rc_broken=
++ rc_parallel=
++ rc_mtime=
+ [[ '' != \y\e\s ]]
+ source /lib/rcscripts/sh/rc-daemon.sh
++ RC_GOT_DAEMON=yes
++ '[' yes '!=' yes ']'
++ declare -ax MASTER_PID=
++ declare -ax PID_LIST=
++ DAEMONS=
++ PID_FILES=
++ RC_RETRY_KILL=no
++ RC_RETRY_TIMEOUT=1
++ RC_RETRY_COUNT=5
++ RC_FAIL_ON_ZOMBIE=no
+ [[ 0 != 0 ]]
+ [[ -e /dev/.rcsysinit ]]
+ svcpause=no
+ svcrestart=no
+ myscript=/etc/init.d/samba
+ [[ -L /etc/init.d/samba ]]
+ myservice=/etc/init.d/samba
+ myservice=samba
+ export SVCNAME=samba
+ SVCNAME=samba
+ mylevel=default
+ [[ samba == \n\e\t ]]
+ IFACE=
+ NETSERVICE=
+ [[ '' == \y\e\s ]]
++ add_suffix /etc/conf.d/samba
++ '[' yes = yes -a -e /etc/conf.d/samba.default ']'
++ echo /etc/conf.d/samba
++ return 0
+ [[ -e /etc/conf.d/samba ]]
++ add_suffix /etc/conf.d/samba
++ '[' yes = yes -a -e /etc/conf.d/samba.default ']'
++ echo /etc/conf.d/samba
++ return 0
+ source /etc/conf.d/samba
++ daemon_list='smbd nmbd'
++ my_service_name=samba
++ my_service_PRE='unset TMP TMPDIR'
++ my_service_POST=
++ smbd_start_options=-D
++ smbd_start='start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- -D'
++ smbd_stop='start-stop-daemon --stop --quiet --pidfile /var/run/samba/smbd.pid'
++ smbd_reload='killall -HUP smbd'
++ nmbd_start_options=-D
++ nmbd_start='start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- -D'
++ nmbd_stop='start-stop-daemon --stop --quiet --pidfile /var/run/samba/nmbd.pid'
++ nmbd_reload='killall -HUP nmbd'
++ winbind_start_options=
++ winbind_start='start-stop-daemon --start --quiet --exec /usr/sbin/winbindd -- '
++ winbind_stop='start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/winbindd'
++ winbind_reload='killall -HUP winbindd'
++ add_suffix /etc/conf.d/net
++ '[' yes = yes -a -e /etc/conf.d/net.default ']'
++ echo /etc/conf.d/net
++ return 0
+ [[ -e /etc/conf.d/net ]]
+ [[ '' == \y\e\s ]]
++ add_suffix /etc/rc.conf
++ '[' yes = yes -a -e /etc/rc.conf.default ']'
++ echo /etc/rc.conf
++ return 0
+ [[ -e /etc/rc.conf ]]
++ add_suffix /etc/rc.conf
++ '[' yes = yes -a -e /etc/rc.conf.default ']'
++ echo /etc/rc.conf
++ return 0
+ source /etc/rc.conf
++ UNICODE=yes
++ EDITOR=/usr/bin/vim
++ bash -n /etc/init.d/samba
+ rcscript_errors=
+ opts=
+ source /etc/init.d/samba
++ opts=' reload'
+ opts='start stop restart pause zap  reload'
+ shift
+ [[ 2 -lt 1 ]]
+ for arg in '$*'
+ case "${arg}" in
+ for arg in '$*'
+ case "${arg}" in
+ for arg in '$*'
+ case "${arg}" in
+ svc_start
+ local retval=0
+ local startfail=no
+ local x=
+ local y=
+ local myserv=
+ local ordservice=
+ service_started samba
+ '[' -z samba ']'
+ '[' -L /var/lib/init.d/started/samba ']'
+ return 1
+ is_runlevel_start
+ '[' -d /var/lib/init.d/softscripts.old ']'
+ return 0
+ service_failed samba
+ '[' -z samba ']'
+ '[' -L /var/lib/init.d/failed/samba ']'
+ return 0
+ exit 1

_________________
Sorry for my bad englilsh. :)
irc.freenode.net #fluxbox-ru - Fluxbox russian speaking channel.


Last edited by serg_sk on Mon May 29, 2006 1:46 pm; edited 1 time in total
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Mon May 29, 2006 12:17 pm    Post subject: Reply with quote

гм.... и на кой ты эту простыню здесь расстелил?
он не запускается у тебя, потому что ошибки в конфиге или ещё что подобное (скорее первое)
а пид не создаётся, потому что он не запускается или запускается, но сразу же падает
не знаю почему так...
имхо некооректно обрабатывается ситуация init-скриптами
а если у тебя те же траблы с самбой, проверь права на каталоги с пидами и факт их существования, ибо они лежат "ниже" стандарта
Back to top
View user's profile Send private message
serg_sk
Guru
Guru


Joined: 10 Jul 2004
Posts: 315
Location: Ukraine

PostPosted: Mon May 29, 2006 1:45 pm    Post subject: Reply with quote

fank wrote:
гм.... и на кой ты эту простыню здесь расстелил?
он не запускается у тебя, потому что ошибки в конфиге или ещё что подобное (скорее первое)
а пид не создаётся, потому что он не запускается или запускается, но сразу же падает
не знаю почему так...
имхо некооректно обрабатывается ситуация init-скриптами
а если у тебя те же траблы с самбой, проверь права на каталоги с пидами и факт их существования, ибо они лежат "ниже" стандарта

Я говорю. Конфиг 100% рабочий. Все запускается норм. Делаю в нем ошибку. Пишу старт он пишет, что не может. Потом исправляю ошибку, пишу старт, он уже не стартует. Вот в чем грабля.
_________________
Sorry for my bad englilsh. :)
irc.freenode.net #fluxbox-ru - Fluxbox russian speaking channel.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Mon May 29, 2006 3:30 pm    Post subject: Reply with quote

теперь понятно
ток ты не туда написал
если ты не согласен с такой политикой написания init-скриптов - в багзиллу
они там действительно сложно и запутанно написаны
боюсь ошибиться, но проверки на наличие (или содержимое) pid-файла НЕ ДЕЛАЕТСЯ
то есть после форка (который не происходит) процесса-демона нет и пида нет
функция save_options pidfile "${pidfile}", берущая значение из файла DHCPD_CONF="/etc/dhcp/dhcpd.conf" только сохраняет то, чего нету...
хотя там всё так запутано.... могу и ошибаться
завтра на свежую голову попытаюсь разобраться
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum