FTP Dienst starten/beenden via C++
-
Hallo,
ich würde gerne wissen, wie man in C++ einen FTP-Server-Dienst startet und beendet oder überhaupt prüft, ob ein FTP-Daemon/Server lokal installiert ist.
// zum Starten
service vsftpd start ??wie prüfe ich ob wirklich gestartet wurde?
// zum Beenden
service vsftpd stop ??wie prüfe ich ob wirklich gestoppt wurde?
-
Im Zweifel über den Rückgabewert von service. Der sollte den Rückgabewert des Init-Scripts durchreichen, und das wird im Zweifel bei Erfolg 0 und bei Misserfolg etwas anderes zurückgeben. Ansonsten haben Initskripte inzwischen meistens auch eine status-Operation, mit der man den Zustand des Dienstes abfragen kann.
Es gibt in der C-Standardbibliothek (die auch von C++ aus verwendbar ist) eine Funktion system (std::system in C++), mit der man eine Shell spawnen kann, deren Rückgabewert dann an dich zurückkommt, das wäre die einfachste Methode. Sauberer wäre fork/exec, aber halt auch umständlicher.
So oder so bezweifle ich aber den Sinn dahinter, das in C++ zu machen. Tut's nicht auch ein einfaches Shell-Skript?
-
Unter welchem OS soll das passieren?
-
Auch wenn es ein Shell-Skript ist, müssen die einzelnen "start" und "stop" Funktionen vom Script, von einem C++ Programm aus aufrufbar sein. Ich weiß leider nicht, wie ich eine bestimmte Skript-Funktion aufrufen soll.
Es handelt sich dabei um Linux OS. Und ich kenne mich mit dem Linux OS nicht so gut aus.
Was wären eigentlich die richtigen Shell-Befehle zum Starten und Beenden des Dienstes? Und wie prüft man, ob ein Dienst am Laufen ist?