Скрипты инициализации gentoo
Здравствуйте уважаемые!
Помогите разобраться с проблемой.
Я хочу запустить две разные самбы (каждая на своем сетевом интерфейсе),
сделал в conf.d два файла для каждой копии самбы:
/etc/conf.d/samba.ext
#add "winbind" to the daemon_list if you also want winbind to start
daemon_list_ext="smbd_ext nmbd_ext"
#----------------------------------------------------------------------------
# Daemons calls: <daemon_name>_<command_option>
#----------------------------------------------------------------------------
my_service_name="samba.ext"
my_service_PRE="unset TMP TMPDIR"
my_service_POST=""
#----------------------------------------------------------------------------
# Daemons calls: <daemon_name>_<command_option>
#----------------------------------------------------------------------------
#smbd_ext_start_options="-D -s /etc/samba/smb.conf.ext -l /var/log/samba/ext -d 255"
smbd_ext_start_options="-D -s /etc/samba/smb.conf.ext"
smbd_ext_start="start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- ${smbd_ext_start_options}"
smbd_ext_stop="start-stop-daemon --stop --quiet --pidfile /var/run/samba/ext/smbd-smb.conf.ext.pid"
smbd_ext_reload="killall -HUP smbd"
#smbd_ext_reload="kill -HUP `cat /var/run/samba/ext/smbd-smb.conf.ext.pid`"
#nmbd_ext_start_options="-D -s /etc/samba/smb.conf.ext -l /var/log/samba/ext -d 255"
nmbd_ext_start_options="-D -s /etc/samba/smb.conf.ext"
nmbd_ext_start="start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- ${nmbd_ext_start_options}"
nmbd_ext_stop="start-stop-daemon --stop --quiet --pidfile /var/run/samba/ext/nmbd-smb.conf.ext.pid"
nmbd_ext_reload="killall -HUP nmbd"
#nmbd_ext_reload="kill -HUP `cat /var/run/samba/ext/nmbd-smb.conf.ext.pid`"
winbind_ext_start_options=""
winbind_ext_start="start-stop-daemon --start --quiet --exec /usr/sbin/winbindd -- ${winbind_ext_start_options}"
winbind_ext_stop="start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/winbindd"
winbind_ext_reload="killall -HUP winbindd"
/etc/conf.d/samba.int
#add "winbind" to the daemon_list if you also want winbind to start
daemon_list_int="smbd_int nmbd_int"
#----------------------------------------------------------------------------
# Daemons calls: <daemon_name>_<command_option>
#----------------------------------------------------------------------------
my_service_name="samba.int"
my_service_PRE="unset TMP TMPDIR"
my_service_POST=""
#----------------------------------------------------------------------------
# Daemons calls: <daemon_name>_<command_option>
#----------------------------------------------------------------------------
smbd_int_start_options="-D -s /etc/samba/smb.conf.int -l /var/log/samba/int -d 255"
smbd_int_start="start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- ${smbd_int_start_options}"
smbd_int_stop="start-stop-daemon --stop --quiet --pidfile /var/run/samba/int/smbd-smb.conf.int.pid"
smbd_int_reload="killall -HUP smbd"
#smbd_int_reload="kill -HUP `cat /var/run/samba/int/smbd-smb.conf.int.pid`"
nmbd_int_start_options="-D -s /etc/samba/smb.conf.int -l /var/log/samba/int -d 255"
nmbd_int_start="start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- ${nmbd_int_start_options}"
nmbd_int_stop="start-stop-daemon --stop --quiet --pidfile /var/run/samba/int/nmbd-smb.conf.int.pid"
nmbd_int_reload="killall -HUP nmbd"
#nmbd_int_reload="kill -HUP `cat /var/run/samba/int/nmbd-smb.conf.int.pid`"
winbind_int_start_options=""
winbind_int_start="start-stop-daemon --start --quiet --exec /usr/sbin/winbindd -- ${winbind_int_start_options}"
winbind_int_stop="start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/winbindd"
winbind_int_reload="killall -HUP winbindd"
и соответственно два скрипта инициализации:
/etc/init.d/samba.ext
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo/src/patchsets/samba/configs/samba-init,v 1.1 2005/08/09 12:56:26 seemant Exp $
opts="${opts} reload"
depend() {
after slapd
need net
use cupsd
}
function signal_do {
local signal
signal="$1"
if [ -n "${signal}" ]; then
result=0
last_result=0
for daemon in ${daemon_list_ext}
do
cmd=${daemon}_${signal}
cmd_exec="${!cmd}"
if [ -n "${cmd_exec}" ]; then
ebegin "${my_ext_service_name} -> ${signal}: ${daemon}"
#echo ${cmd} '->' ${!cmd}
${cmd_exec} > /dev/null
last_result=$?
eend ${last_result}
fi
result=$(( ${result} + ${last_result} ))
done
fi
return ${result}
}
start() {
${my_service_PRE}
signal_do start
result_start=$?
if [ ${result_start} -gt 0 ]; then
ewarn "Error: stopping services (see system logs)"
signal_do stop
fi
eend ${result_start}
}
stop() {
${my_service_PRE}
signal_do stop
${my_service_POST}
eend $?
}
reload() {
${my_service_PRE}
signal_do reload
eend $?
}
/etc/init.d/samba.int
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo/src/patchsets/samba/configs/samba-init-int,v 1.1 2005/08/09 12:56:26 seemant Exp_int $
opts="${opts} reload"
depend() {
after slapd
need net
use cupsd
}
function signal_do {
local signal
signal="$1"
if [ -n "${signal}" ]; then
result=0
last_result=0
for daemon in ${daemon_list_int}
do
cmd=${daemon}_${signal}
cmd_exec="${!cmd}"
if [ -n "${cmd_exec}" ]; then
ebegin "${my_service_name} -> ${signal}: ${daemon}"
#echo ${cmd} '->' ${!cmd}
${cmd_exec} > /dev/null
last_result=$?
eend ${last_result}
fi
result=$(( ${result} + ${last_result} ))
done
fi
return ${result}
}
start() {
${my_service_PRE}
signal_do start
result_start=$?
if [ ${result_start} -gt 0 ]; then
ewarn "Error: stopping services (see system logs)"
signal_do stop
fi
eend ${result_start}
}
stop() {
${my_service_PRE}
signal_do stop
${my_service_POST}
eend $?
}
reload() {
${my_service_PRE}
signal_do reload
eend $?
}
при запуске первой копии (без разницы какой) все нормально, но када запускаю вторую копию вылазит ошибка
Error: stopping services (see system logs)
смотрю messages там таже самая запись
в логах самбы ничего такого нет, но эта проблема не в самбе потому как сделав самописный скрипт инициализации который не берет инфу с conf.d все нормально запускается и работает.
Я в программировании на shell не силен (начинающий заводчик пингвинов), но мне кажется это проблема в системе инициализации генты - такое впечатление что она отслеживает и не дает запускать еще одну копию процессов smbd и nmbd.
Скажите пожалуйста куда копать? Хотя с самописными скриптами работает, но очень хотелось бы разобраться в чем дело.
Заранее спасибо!
- Для комментирования войдите или зарегистрируйтесь

А для чего тебе
А для чего тебе держать две самбы? Она же умеет подключать различные конфиги, в зависимотсти от того, кто в нее ломится, можно по машине, можно по пользователю.
Ну в данном
Ну в данном случае на одном интерфейсе самба - клиент домена, на другом - контроллер домена. Поэтому инклюды не подходят приходится запускать две самбы.