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?


Anmelden zum Antworten