Библиотека сайта rus-linux.net
Using SambaRobert Eckstein, David Collier-Brown, Peter Kelly1st Edition November 1999 1-56592-449-5, Order Number: 4495 416 pages, $34.95 |
2.5 Запуск демонов Samba
Существует два процесса Samba, smbd и nmbd, которые необходимы для корректной работы Samba. Есть три способа их запуска:
2.5.1 Запуск демонов вручную
Если вы спешите, то вы можете запустить демоны Samba вручную. Как пользователь root, просто введите следующие команды:
#/usr/local/samba/bin/smbd -D
#/usr/local/samba/bin/nmbd -D
С этого момента, Samba будет запущена на вашей системе и готова для установки соедиений.
2.5.2 Отдельные демоны
Чтобы запустить процессы Samba как отдельные демоны, вам необходимо добавить команды, перечисленные в предыдущей секции, в ваш стандартный скрипт запуска в Unix. Это зависит от того, имеете ли вы систему типа BSD Unix или System V Unix.
2.5.2.1 BSD Unix
При стиле BSD Unix, вам необходимо добавить следующие строки в файл rc.local, который обычно находится в директориях /etc или /etc/rc.d :
if [ -x /usr/local/samba/bin/smbd]; then echo "Starting smbd..." /usr/local/samba/bin/smbd -D echo "Starting nmbd..." /usr/local/samba/bin/nmbd -D fiЭтот код достаточно прост; он проверяет, имеет ли файл smbd разрешение на запуск и если имеет, то он запускает каждый демон Samba при загрузке.
2.5.2.2 System V Unix
С System V придется поработать больше. System V обычно использует скрипты для запуска и остановки демонов в системе. Поэтому, вам придется указать Samba каким образом ему работать при запуске и остановке. Вы можете изменить содержание директории /etc/rc.local и добавить что-то похожее на данную программу под именем smb:
#!/bin/sh # Contains the "killproc" function on Red Hat Linux ./etc/rc.d/init.d/functions PATH="/usr/local/samba/bin:$PATH" case $1 in 'start') echo "Starting smbd..." smbd -D echo "Starting nmbd..." nmbd -D ;; 'stop') echo "Stopping smbd and nmbd..." killproc smbd killproc nmbd rm -f /usr/local/samba/var/locks/smbd.pid rm -f /usr/local/samba/var/locks/nmbd.pid ;; *) echo "usage: smb {start|stop}" ;; esacПри помощи этого скрипта вы можете запускать службу SMB при помощи следующих команд:
# /etc/rc.local/smb start Starting smbd... Starting nmbd... # /etc/rc.local/smb stop Stopping smbd and nmbd...2.5.3 Запуск через Inetd
Inetd √ это супер демон Internet в UNIX. Он слушает порты, описанные в /etc/services и запускает соответствующую программу для данного порта, которая определена в файле /etc/inetd.conf. Смысл этого заключается в том, что вы можете иметь большое число демонов, готовых отвечать на запросы, но они не обязательно должны быть запущены. В место этого inetd слушает за остальных. Выгода заключается в том, что для создания нового процесса необходимо выполнить немного операций. Это удобно, если один или два пользователя на вашем компьютере имеют слишком много запущенных демонов. Это также полезно для проведения обновления без разрыва установленных соединений.
Если вы желаете запустить через inetd, для начала откройте /etc/services в текстовом редакторе. Ели вы до сих пор не добавили следующие линии, сделаете это:
netbios-ssn 139/tcp netbios-ns 137/udpДалее, отредактируйте /etc/inetd.conf. Взгляните на следующие две строки и добавте их, если они отсутствуют. Если вы уже имеете строки с
smbd
иnmbd
в файле, отредактируйте их в соответствии с заново установленными smbd и nmbd. Ваша разновидность Unix-а может использовать немного другой синтакс файла; используйте существующие записи и станицы документации inetd.conf в качестве руководства:netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbdОкончательно, убейте любые процессы smbd или nmbd и пошлите процессу inetd сигнал HUP. (Демон inetd заново прочитает свой конфигурационный файл по сигналу HUP.) Чтобы сделать это, используйте команду
ps
для того, чтобы найти ID процесса, после чего пошлите сигнал при помощи следующей команды:#kill -HUP process_id
После этого Samba должен работать.
International | About O'Reilly | Affiliated Companies
© 1999, O'Reilly & Associates, Inc.