2014-01-30 14 views
5

Ich versuche ein Bash-Skript über Plink auszuführen. Das Skript sieht in etwa wie folgt aus:plink wird nicht zur Eingabeaufforderung zurückkehren

Wenn ich dieses Skript in einem Terminal unter Linux ausführen, funktioniert alles gut. Nach dem "Fertig!" Zeile Ich bekomme eine Eingabeaufforderung (wie erwartet).

Jetzt, wenn ich dieses Skript über Plink ausführen, stoppt die Ausgabe afyer die "Fertig!" Zeile, aber Plink wird nicht zur Eingabeaufforderung zurückkehren und "hängt" bis + c.

Das Skript wird in einer Datei abgelegt und mit dem Parameter -m plink gegeben

I betritt und ‚Logout‘ versucht, ‚Exit‘, ‚set -e‘ am Ende des Skripts, aber es doesn Hilf mir nicht. Auch das Hinzufügen von -batch, -T oder -N zum Befehl plink brachte keinen Erfolg.

Irgendwelche Ideen, wie Sie das beheben können?

Antwort

0

Plink verfügt über einen -batch Parameter, der alle interaktiven Eingabeaufforderungen deaktiviert. Es kann sein, was Sie hier brauchen, um zu vermeiden, bis Ctrl-C zu hängen.

+1

Vergessen zu erwähnen, ich habe bereits versucht -Batch, -T, -N ... tat nicht helfen. – user3252141

4

Ok, es scheint, ich musste stdout/err vom Terminal trennen. In einem normalen Terminal wäre das natürlich egal, aber Plink blieb deswegen in einem "beschäftigten" Zustand.

Also, in meinem Bash-Skript (die den Befehl ausgeführt) musste ich ändern:

./bin/process "process.cfg" &

zu:

./bin/ Prozess "process.cfg"/dev/null 2>

plink gibt nun am Ende des Bash-Skripts den korrekten "finished" -Zustand zurück.

+0

Danke - Ich habe mit einem ähnlichen Problem gekämpft, als ich Linux gehostet WebLogic von einem Windows-gehosteten Skript starten wollte. Das Umleiten der Ausgabe von startWebLogic.sh nach/dev/null scheint das Problem behoben zu haben. (upvote) – andyb

+1

Fehlt hier ein '>' vor dem/dev/null? –

+0

Hey Leute, wie zu tun, plink trennen/abmelden, wenn mein Remote-Skript abgeschlossen ist? "plink.exe -ssh -domain -pw password /home/myscript.sh> output-deploy.txt" –

2

plink.exe -P PORT_NUM -v [email protected]_IP -pw PASSWD "COMMAND >/dev/null &"

  • & Ihren Prozess in den Hintergrund würde
  • > /dev/null ermöglicht Ihren Befehl laufen leise durch stdout/stderr Ausgabe an einen Dummy-Null-Gerät

Note bekommen: die Schale Befehl ist in "doppelte Zitate" eingewickelt

Verwandte Themen