Скрипты инициализации 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.
Скажите пожалуйста куда копать? Хотя с самописными скриптами работает, но очень хотелось бы разобраться в чем дело.
Заранее спасибо!
- Для комментирования войдите или зарегистрируйтесь
А для чего тебе
А для чего тебе держать две самбы? Она же умеет подключать различные конфиги, в зависимотсти от того, кто в нее ломится, можно по машине, можно по пользователю.
Ну в данном
Ну в данном случае на одном интерфейсе самба - клиент домена, на другом - контроллер домена. Поэтому инклюды не подходят приходится запускать две самбы.