Moin,

ich fasse mich mal kurz:

1. PID-File
Beim Start willst Du es anlegen - beim Stop löschen können. Versuch mal ein "rm /pfad/zum/PID_file", wenn das ein Verzeichnis ist. Und bevor Du mir schreibst, dass da ja nur Dein Script hinschreiben will - wie willst Du das absichern? Die Arbeit mit PID-Files will ein wenig überlegt sein - immerhin sind das Dateien, die laufend erzeugt / geändert / gelöscht werden, und das u. U. von verschiedenen Benutzern, ggf. sogar zeitgleich.

2. "Ich stoppe nur Prozesse, die mein Script gestartet hat"
Wie willst Du das denn überprüfen??? Jeder, der Dein Script ausführen kann, kann es auch kopieren, ändern und dann diese Kopie starten:

Benutzer devil hat das Passwort von $username vergessen. er kopiert sich das Script in sein $HOME, ändert $use_user auf 0 und startet es dann. Schwupps hast Du einen sc_serv unter User devil und alle braven Benutzer wundern sich, warum sie beim Status keinen laufenden Prozess sehen, demzufolge auch keinen stoppen können - aber ein Start klappt auch nicht (da ist nämlich dieser verflixte IP-Port bereits vergeben).

3. Wie willst Du verhindern, dass sich ein Anwender Dein Script in einen Editor lädt, die Startzeile (ohne su -c) kopiert und die dann einfach ausführt? Solange Du diese ganzen Optionen zulässt, musst Du nämlich auch das sc_serv-Binary für jeden ausführbar lassen.

4. Deine neu entdeckten Mods, um mehrere sc_serv zuzulassen:
Am Anfang dieses (mittlerweile rekordverdächtigen) Threads hast Du auf meine diesbezügliche Frage (sollen mehrere Server gleichzeitig laufen können?) noch exakt andersrum geantwortet - nämlich mit "Nein" - jetzt ist draus "Ja" geworden.

Ich glaube Dir nicht, wenn Du jetzt behauptest "Und das ist auch so gedacht" - das ist es nämlich definitiv nicht und bis eben war das auch nie Dein Ziel (lies Deine eigenen vergangenen Postings nochmal, wenn Du mir nicht glaubst).

Dein Script (und auch mein Vorschlag) sind auf keine der Situationen und möglichen Sicherheitsrisiken auch nur im Geringsten vorbereitet, die eine "Multi-sc_serv"-Umgebung mit sich bringt (notwendige Überwachung der IP-Ports, bessere regex, um zutreffende Server zu identifizieren, Ausschließen von Race Conditions bei den PID-Files, ...). Für eine so komplexe Aufgabe (der Server soll ja unter den verschiedensten Usern, Ports usw. zu starten und betriebssicher auch wieder zu stoppen sein) braucht man dann doch ein paar Tage mehr Zeit.

Ich mache Dir einen Vorschlag: Du gibst mir für 15 Minuten Shell-Zugang auf Dein System, ich benutze nur Dein Script, sc_serv (inkl. aller Deiner Mods) und die normalen Shell-Mittel und wir posten hier dann einen Mitschnitt meiner Kommandos und einen Screenshot des top zu dem Zeitpunkt, zu dem Dein System das letzte Mal benutzbar war - ok?

5. Was willst Du hier kriegen? Hilfe? Oder die Bestätigung, dass Deine Programmier- und Design-Fehler keine sind?

Jan