hallo,
ich hab nichts über die Suche hier im Forum gefunden.
mein problem ist folgendes:
ich möchte den Apache Tomcat dienst starten/stoppen/checken
ansich wenn ich weiß wie dieser dienst heißt z.b 'Apache Tomcat' oder 'Apache Tomcat 6' kann ich ihn direkt starten/stoppen was ich auch machen möchte
nur problem ist folgendes der dienst kann wie die 2 beispiele schon zeigen, verschiedene Bezeichnungen haben.
bsp code wie ich den Apache z.b checke.
das problem das waitfor() gibt nur 0 oder 1 zurück .. 0 er läuft .. 1 er ist aus ODER nicht vorhanden
ich hab versucht auch über andere net befehle andere ECHO %ERRORLEVEL% msgs zu bekommen und evtl über diese somit den richtigen apache zu filtern aber da hab ich nur immer die selben echos bekommen
die Start bzw stop methode
ich hab nichts gefunden wie ich mir die kompletten Dienste als Liste übergeben könnte und so dann rausfiltere welche Bezeichnung die richtige auf dem jeweiligen System ist.
nun könnte man meinen ich rufe einfach erst die stopApache methode auf wenn ich ihn anhalten will und die startApache wenn er wieder anlaufen soll
nur ich brauche den check als universelle für alle namensgebungen damit ich überprüfen kann in welchem status er sich momentan befindet
das ganze hängt in nem speicher zyklus mit drin und ich kann net einfach starten stoppen wanns mir passt
wenn jemand weiß wie man so ne Windows dienst liste erstellt oder bsp code hat einfach reinposten
mfg
avi
ich hab nichts über die Suche hier im Forum gefunden.
mein problem ist folgendes:
ich möchte den Apache Tomcat dienst starten/stoppen/checken
ansich wenn ich weiß wie dieser dienst heißt z.b 'Apache Tomcat' oder 'Apache Tomcat 6' kann ich ihn direkt starten/stoppen was ich auch machen möchte
nur problem ist folgendes der dienst kann wie die 2 beispiele schon zeigen, verschiedene Bezeichnungen haben.
bsp code wie ich den Apache z.b checke.
das problem das waitfor() gibt nur 0 oder 1 zurück .. 0 er läuft .. 1 er ist aus ODER nicht vorhanden
ich hab versucht auch über andere net befehle andere ECHO %ERRORLEVEL% msgs zu bekommen und evtl über diese somit den richtigen apache zu filtern aber da hab ich nur immer die selben echos bekommen
Java:
public static int checkApache() throws InterruptedException, IOException {
// setting the name of the service
String serviceName = "\"Apache Tomcat\"";
// setting up the command
String[] command = { "cmd", "/c", "net", "start", "|", "find",
serviceName };
// adding the command to a proccessbuilder
ProcessBuilder processBuilder = new ProcessBuilder(command);
// starting the process
Process process = processBuilder.start();
// saving the echo answer of the command - 0 its running - 1 its offline
result = process.waitFor();
//returning the result
return result;
}
die Start bzw stop methode
Java:
public static void stopApache() throws Exception {
checkApache();
if (result == 0) {
// info logging
log.info("Shutting down Apache Server");
// creating the command to stop the apache
String serviceStop = "\"Apache Tomcat\"";
String[] commandstop = { "cmd", "/c", "net", "stop", serviceStop };
ProcessBuilder processBuilderStop = new ProcessBuilder(commandstop);
processBuilderStop.start();
System.out.println("stopped");
} else {
log.info("Apache already down");
}
}
ich hab nichts gefunden wie ich mir die kompletten Dienste als Liste übergeben könnte und so dann rausfiltere welche Bezeichnung die richtige auf dem jeweiligen System ist.
nun könnte man meinen ich rufe einfach erst die stopApache methode auf wenn ich ihn anhalten will und die startApache wenn er wieder anlaufen soll
nur ich brauche den check als universelle für alle namensgebungen damit ich überprüfen kann in welchem status er sich momentan befindet
das ganze hängt in nem speicher zyklus mit drin und ich kann net einfach starten stoppen wanns mir passt
wenn jemand weiß wie man so ne Windows dienst liste erstellt oder bsp code hat einfach reinposten
mfg
avi
Zuletzt bearbeitet von einem Moderator: