Linux Rechner per ssh runterfahren mit Java

mysticado

Aktives Mitglied
Hallo Leute,
ich programmiere gerade ein kleines Rechenzentrums-Cluster und habe folgendes Problem - wenn ein Rechner nicht weiter ausgelastet ist, möchte ich ihn runterfahen...nach Möglichkeit per ssh.
Nun dachte ich mir, ich mache es wie folgt:

Code:
import java.io.IOException;

class Test{

public static void main(String[] args) throws IOException{
Process p = Runtime.getRuntime().exec("ssh user@192.168.0.3 \"sudo shutdown -P now\"");
}
}

Leider reagiert der remote Rechner jedoch nicht auf diesen Befehl. Was habe ich falsch gemacht, bzw. was kann ich machen, um diesen Rechner runterzufahren?
Irgend welche Ideen????

Danke schon mal im voraus!
Viele Grüße
 

mysticado

Aktives Mitglied
In /etc/sudoers folgendes geändert/hinzugefügt:

ich ALL=(user) ALL

Meinst du das?

P.S. Der Befehl funktioniert so ohne Probleme wenn ich ihn in der Kommandozeile eintippe, nur wird er irgendwie nicht angenommen, wenn es meine Java-Datei macht. Hmm, was könnte es sein!?
 

mysticado

Aktives Mitglied
Das sudoers file korrekt angepasst und schon sollte die Befehlsausführung auch ohne Passwort klappen. Ist natürlich nicht wirklich schön was den Sicherheitsaspekt anbelangt, aber mir ist das unwichtig im Moment.
Wie gesagt, wenn ich den Befehl in der shell eingebe funktioniert alles, auch ohne Passworteingabe (ssh braucht kein Passwort wg. "known_hosts").
Um nochmal auf meine Frage zurückzukommen: Weiss einer wieso der Befehl nicht auch über meinen Code klappt? Und, hätte jemand zufällig eine Alternative, aber auch über Java?
 

TheDarkRose

Gesperrter Benutzer
Du kannst auch sudo so konfigurieren das nur für einen Befehl für diesen bestimmten User kein Passwort erforderlich ist, für den rest schon. Hast du schon mal das ssh Konstrukt in der Shell so ausgeführt? Also nicht am Server sonder von lokal aus direkt
Code:
ssh user@192.168.0.3 "sudo shutdown -P now"
eingeben?
 

musiKk

Top Contributor
Benutze die [c]exec()[/c]-Version, die ein Array erwartet und übergib den SSH-Befehl dort als einzelnes Argument:

Java:
.exec(new String[] { "ssh", "foo@bar", "sudo shutdown -P now" };

Bei deiner aktuellen Variante wird der String an den Leerzeichen gespalten. Dadurch lautet der Befehlsname [c]"sudo[/c] und diesen gibt es nicht.
 

mysticado

Aktives Mitglied
Leute vielen Dank für die Unterstützung - hab wieder was Neues dazugelernt! :)

Ich muss jedoch zugeben, ich hab es ganz anders gelöst - ich habe an den einzelnen Rechnern jeweils ein kleines bash-skript erstellt welches nur die Funktion "shutdown -h now" enthält und dieses bash-skript rufe ich nun per exec() auf :)

Das ist das Tolle an der Informatik - es gibt so viele verschiedene Wege! :)

Vielen Dank nochmal!!
 

musiKk

Top Contributor
Dann hättest Du auch gleich [c]halt[/c] oder [c]poweroff[/c] (letzteres dürfte wohl eher [c]shutdown -P[/c] entsprechen) nehmen können. Das ist zwar glaube ich nicht überall vorhanden, aber mir ist noch kein Linux begegnet, bei dem das auch der Fall ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thE_29 Linux-Rechner herunterfahren Allgemeine Java-Themen 3
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
M Eclipse unter Linux Lite Allgemeine Java-Themen 2
M priority scheduling in Linux Allgemeine Java-Themen 3
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
L Super User via Processbuilder (Linux) Allgemeine Java-Themen 3
OSchriever Linux-Programm öffnen Allgemeine Java-Themen 6
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Linux .jar beim Start automatisch ausführen Allgemeine Java-Themen 6
J ASCM - In Linux öffnen Allgemeine Java-Themen 3
L Tesseract-OCR 4.0 unter Linux funktioniert nicht Allgemeine Java-Themen 3
J Sound mit Clip in Linux abspielen Allgemeine Java-Themen 3
K USB infos unter Linux abfragen? Allgemeine Java-Themen 2
N Lizenzensierung von Java Programmen unter Linux Allgemeine Java-Themen 3
P OneWire Java Linux Allgemeine Java-Themen 11
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
A Linux bash script ausführen Allgemeine Java-Themen 16
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
D jnativehook auf Linux Allgemeine Java-Themen 1
A Linux: Native Library mit Rootrechten ohne Prozess mit sudo zu starten Allgemeine Java-Themen 1
F Linux & NetBeans: Datei in Systemverzeichnis schreiben? Allgemeine Java-Themen 1
E Sonderzeichen nicht setzbar: Großes Problem bei Programmierung unter Linux Mint mit Virtual Box Allgemeine Java-Themen 5
F URI Schema in Linux erstellen? Allgemeine Java-Themen 3
D Problem VLC4J Raspbian(Linux) Allgemeine Java-Themen 0
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
F.S.WhiTeY JDK installieren Linux: Nach Update link auf Java zerschossen Allgemeine Java-Themen 4
M Java auf Linux und Windows Allgemeine Java-Themen 6
D pfad zur jre linux Allgemeine Java-Themen 8
B Ordner öffnen mittels Java in Linux-Umgebung Allgemeine Java-Themen 7
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
G Linux/C++/Pthreads auf JVM zugreifen, thread safe? Allgemeine Java-Themen 10
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
G RXTX native library unter Linux in jar build angeben Allgemeine Java-Themen 4
R Umlautproblem unter Linux Allgemeine Java-Themen 10
Gossi Mit Java auf Linux- & Windowssysteme zugreifen? Allgemeine Java-Themen 4
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
Z Probleme bei Stringvergleichen (Windows/Linux) Allgemeine Java-Themen 10
F Process.getInputStream unter Linux Allgemeine Java-Themen 7
J Java programm lässt sich in win7 nach linux install nicht mehr ausführen Allgemeine Java-Themen 18
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
G Java und Syslog (Linux) Allgemeine Java-Themen 3
T Javaprogramm unter Linux auf bestimmten Kern starten/laufen lassen ? Allgemeine Java-Themen 22
D Unix/Linux Benutzer-Authentifikation über Java Allgemeine Java-Themen 3
B JNA, Linux und die Smart Card Allgemeine Java-Themen 2
P Runnable Jar File über Windows ausführbar doch über Linux nicht Allgemeine Java-Themen 8
C RXTX Treiber einbinden für Linux Allgemeine Java-Themen 6
C Datei auslesen wie unter Linux mit "tail -f" Allgemeine Java-Themen 3
E Linux Cups Allgemeine Java-Themen 6
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
T linux problem mit Desktop.getDesktop().open(..) Allgemeine Java-Themen 5
lordcarlos Runtime exec und mplayer (linux) Allgemeine Java-Themen 11
J dialogys unter linux Allgemeine Java-Themen 4
S Problem beim Drucken auf Netzwerkdrucker unter Linux Allgemeine Java-Themen 9
B Linux: Bash von Java aus aufrufen Allgemeine Java-Themen 10
T System Preferences + LInux (Ubuntu) Allgemeine Java-Themen 8
R Timing-Problem (?) Linux versus Windows Allgemeine Java-Themen 13
F Document öffnen unter Linux Allgemeine Java-Themen 4
F Portzugriffe Java @Linux & Windows? Allgemeine Java-Themen 4
W Deployment unter Linux Allgemeine Java-Themen 17
D Mit Linux mehrere Kommandos in einem Subprozeß Allgemeine Java-Themen 3
E Erfahrung mit RXTX sowie Windows und Linux Allgemeine Java-Themen 9
J Externes Programm starten und stoppen (Linux) Allgemeine Java-Themen 3
B Programm läuft unter Linux, aber nicht unter Windows Allgemeine Java-Themen 3
J UTF-8 Sockets : Windows<->Linux Ein altes Problem Allgemeine Java-Themen 7
S Ausführbare Scriptdatei unter Linux erstellen Allgemeine Java-Themen 6
J Programm unter Linux starten Allgemeine Java-Themen 3
R Jar-File vom Linux Desktop durch ancklicken starten? Allgemeine Java-Themen 5
P Linux port Allgemeine Java-Themen 4
P CLASSPATH LINUX Allgemeine Java-Themen 9
L Programm läßt sich wegen Java unter Linux nicht starten Allgemeine Java-Themen 4
V JAR-File läuft unter Windows und Linux, aber nicht unter OSX Allgemeine Java-Themen 6
M Welches Linux zum Java testen? Allgemeine Java-Themen 5
D linux shell aus java öffnen Allgemeine Java-Themen 5
A Linux-Consolenbefehle über Java ausführen? Allgemeine Java-Themen 2
B Java Applikation incl. dll unter Linux ausführen? Allgemeine Java-Themen 11
G Java Socket langsam unter Linux Allgemeine Java-Themen 21
T *.jar applikationen auf Linux installieren Allgemeine Java-Themen 4
P jdic/Linux Allgemeine Java-Themen 2
G Linux Dateinamen Charset Probleme Allgemeine Java-Themen 8
Ark Linux: Shell-Skript zum Kompileren und Starten Allgemeine Java-Themen 4
N Linux-Commands über Java Anwendung ausführen Allgemeine Java-Themen 12
M Eigenes Java-Server-Programm unter Linux steuern? Allgemeine Java-Themen 13
P linux + java :/ Allgemeine Java-Themen 11
G Läuft nicht unter Linux oO Allgemeine Java-Themen 10
S Java Entwicklungsumgebungen unter XP und Linux und weitere F Allgemeine Java-Themen 7
W Programm starten unter Linux Allgemeine Java-Themen 10
M Speicherverwaltung unter Linux Allgemeine Java-Themen 7
A Geschwindigkeit Java unter Linux Allgemeine Java-Themen 9
J jdic funktioniert unter Linux nicht Allgemeine Java-Themen 18
S Welche Javaversion ist in meinem Linux? Allgemeine Java-Themen 2
L Native Threads unter Linux? Allgemeine Java-Themen 2
V JVM OutofMemory Linux geht, windows nicht Allgemeine Java-Themen 3
L mit exec() befehl ausführen ( OS X / Linux) Allgemeine Java-Themen 8
B JMF -> Webcam (Linux) Allgemeine Java-Themen 14
B Java 6 unter Ubuntu (Linux) Allgemeine Java-Themen 4
B gibVerzeichnis() unter linux Allgemeine Java-Themen 9
D JMF unter Linux/Windows, nichts funktioniert Allgemeine Java-Themen 3
F Runtime.getRuntime().exec mit Linux und Leerzeichen Allgemeine Java-Themen 3
L javax.comm unter Linux Allgemeine Java-Themen 11
G Zugriff von Windows auf Linux Allgemeine Java-Themen 11

Ähnliche Java Themen


Oben