Ich habe mir Samba nochmal angeschaut, die Pid-Dateien werden tatsächlich nicht gelöscht. Das sollte aber kein prinzipielle Problem sein.
Generell würde ich vorschlagen, die Start-Dateien so zu ändern, daß smbd und nmbd getrennt gestartet werden. Das macht zum einen die Dateien einfacher, und auch die Status-Anzeige wird damit aussagekräftiger. Weiterhin sollte man die Möglichkeit bieten, smbd und nmbd unabhängig voneinander auszuwählen.
Wenn jemand zum Beispiel nur einen Master Browser auf der Box laufen lassen will, reicht dafür nmbd ohne smbd. In Verbindung mit einer passenden Client-Konfiguration (über DHCP oder von Hand) hilft dies dabei, daß sich Windows-PCs gegenseitig schneller erkennen, unabhängig davon, ob auf der Box ein smbd läuft oder nicht.
Andererseits kann man auch den smbd ohne nmbd nutzen, wenn man DNS verwendet, um die Namen aufzulösen.
In der Datei root/etc/init.d/modlibrc gibt es bereits eine Funktion modlib_check_running(), mit der man prüfen kann, ob das Programm noch läuft. Diese Funktion prüft nicht nur die Existenz der Pid-Datei, sondern auch, ob ein Prozeß mit der Nummer existiert. Außerdem gibt es dort noch die Funktionen modlib_stop(), modlib_reload(), modlib_restart() und modlib_status(). Es gibt zwar eine kleine Unsicherheit für den Fall, daß die Prozeß-Nummern überlaufen, aber das ist zumindest unwahrscheinlich.
Eine Alternative wäre, checkproc, startproc und killproc für die Box zu erstellen, aber die wären sicher größer. Evtl. könnte man eine Busybox-Version davon erstellen.