[Comm] сетевые глюки

Дегтярёв Дмитрий =?iso-8859-1?q?ddv_=CE=C1_nevod=2Eru?=
Чт Июл 17 09:11:13 MSD 2008


Геннадий Ищенко пишет:
>
> Имеется одноранговая локальная сеть с Windows и Linux
> машинами вперемешку. С Windows-ПК проблем нет (обмен
> информацией и печать через Samba. Одн из ПК с ALT Desktop
> 4.0.1 в сети не виден. Если перезагрузить Samba, то:
>
> #service smb reload
> Reloading smb.conf file: NetBIOS over TCP/IP server, Samba server [FAILED]
>   
в такой ситуации не плохобы увидеть вывод:
# service smb status
и
ps ax | grep mb

Скорее всего не запущен smbd или nmbd. При этом smbd или nmbd не 
падают(поэтому в логах пусто), а совершенно нормально завершают работу. 
Это происходит из-за ротации логов.
Смотрим скрипт /etc/logrotate.d/samba:
/var/log/samba/log.* {
    notifempty
    missingok
        size=101k
        sharedscripts
    postrotate
        /sbin/service smb condrestart > /dev/null 2>&1
    endscript
}

Как видно при ротации выполняется /sbin/service smb condrestart

Смотрим в файле /etc/init.d/smb что делается при condrestart:
condrestart)
                if [ -e "$LOCKFILE" ]; then
                        restart
                fi
                ;;
выполняется функция restart, смотри её:
restart()
{
        stop
        start
}

Выполняется stop, т.е. остановка сервиса, а затем сразу start. При 
старте проверяется запущены ли сервисы smbd и nmbd, если запущен, то его 
повторный запуск не осуществляется. После выполнения stop не факт, что 
smbd или nmbd успели завершиться, затем выполняется start и сервис, 
который не успел остановиться, не запускает. start отработал, а после 
этого smb или nmb благополучно останавливаются. В результате получаем, 
например:
/etc/init.d/smb status
smbd is running
nmbd is stopped


До следующей ротации никто его не запустит.

Решал я данную проблему следующим образом, модифицировал 
/etc/logrotate.d/samba:
/var/log/samba/log.* {
    notifempty
    missingok
        size=101k
        sharedscripts
    postrotate
        /sbin/service smb stop > /dev/null 2>&1
        [ ! -f /var/lock/nmbd.pid ] || kill -HUP `cat /var/lock/nmbd.pid`
        [ ! -f /var/lock/smbd.pid ] || kill -HUP `cat /var/lock/smbd.pid`
        /sbin/service smb start > /dev/null 2>&1
    endscript
}



Не знаю на сколько это правильно, но samba теперь запущена всегда и 
работает..
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : ddv.vcf
Тип     : text/x-vcard
Размер  : 1091 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20080717/6da06334/attachment-0002.vcf>


Подробная информация о списке рассылки community