Hello, 

when running samba with non-default config file location via the ``-s''
switch, the smbcontrol(1) utility used in rc.d(8) scripts fails to
locate the pid files, even when run with the exact same parameters as
smbd/nmbd. Working around the problem (did not report upstream yet) I
came up with the patches below (and attached). These use the PID if
available, instead of names. It does not respect the smb.conf(5) ``pid
directory (G)'' option.

bye, Marcus

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--- smbd.orig   Mon Apr  2 11:25:10 2012
+++ smbd        Mon Apr  2 11:46:19 2012
@@ -7,17 +7,19 @@
 . /etc/rc.d/rc.subr
 
 smbcontrol="/usr/local/bin/smbcontrol"
+smbdid="smbd"
+ls /var/run/smbd*.pid > /dev/null 2>&1 && smbdid=$(cat /var/run/smbd*.pid)
 
 rc_check() {
-       ${smbcontrol} smbd ping
+       ${smbcontrol} ${smbdid} ping
 }
 
 rc_reload() {
-       ${smbcontrol} smbd reload-config
+       ${smbcontrol} ${smbdid} reload-config
 }
 
 rc_stop() {
-       ${smbcontrol} smbd shutdown
+       ${smbcontrol} ${smbdid} shutdown
 }
 
 rc_cmd $1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--- nmbd.orig   Mon Apr  2 11:35:36 2012
+++ nmbd        Mon Apr  2 11:46:08 2012
@@ -7,17 +7,19 @@
 . /etc/rc.d/rc.subr
 
 smbcontrol="/usr/local/bin/smbcontrol"
+nmbdid="nmbd"
+ls /var/run/nmbd*.pid > /dev/null 2>&1 && nmbdid=$(cat /var/run/nmbd*.pid)
 
 rc_check() {
-       ${smbcontrol} nmbd ping
+       ${smbcontrol} ${nmbdid} ping
 }
 
 rc_reload() {
-       ${smbcontrol} nmbd reload-config
+       ${smbcontrol} ${nmbdid} reload-config
 }
 
 rc_stop() {
-       ${smbcontrol} nmbd shutdown
+       ${smbcontrol} ${nmbdid} shutdown
 }
 
 rc_cmd $1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

--- smbd.orig   Mon Apr  2 11:25:10 2012
+++ smbd        Mon Apr  2 11:46:19 2012
@@ -7,17 +7,19 @@
 . /etc/rc.d/rc.subr
 
 smbcontrol="/usr/local/bin/smbcontrol"
+smbdid="smbd"
+ls /var/run/smbd*.pid > /dev/null 2>&1 && smbdid=$(cat /var/run/smbd*.pid)
 
 rc_check() {
-       ${smbcontrol} smbd ping
+       ${smbcontrol} ${smbdid} ping
 }
 
 rc_reload() {
-       ${smbcontrol} smbd reload-config
+       ${smbcontrol} ${smbdid} reload-config
 }
 
 rc_stop() {
-       ${smbcontrol} smbd shutdown
+       ${smbcontrol} ${smbdid} shutdown
 }
 
 rc_cmd $1
--- nmbd.orig   Mon Apr  2 11:35:36 2012
+++ nmbd        Mon Apr  2 11:46:08 2012
@@ -7,17 +7,19 @@
 . /etc/rc.d/rc.subr
 
 smbcontrol="/usr/local/bin/smbcontrol"
+nmbdid="nmbd"
+ls /var/run/nmbd*.pid > /dev/null 2>&1 && nmbdid=$(cat /var/run/nmbd*.pid)
 
 rc_check() {
-       ${smbcontrol} nmbd ping
+       ${smbcontrol} ${nmbdid} ping
 }
 
 rc_reload() {
-       ${smbcontrol} nmbd reload-config
+       ${smbcontrol} ${nmbdid} reload-config
 }
 
 rc_stop() {
-       ${smbcontrol} nmbd shutdown
+       ${smbcontrol} ${nmbdid} shutdown
 }
 
 rc_cmd $1

Reply via email to