ssh unter nohup liefert returncode 255

H

heiopei

Grünschnabel
Hallo Gemeinde,

ich habe ein ziemlich verzwicktes Problem, dass ich - auch mit schon einigem Support - nicht gelöst bekomme.

In meinem Shell Script werden mittels scp Dateien auf eine remote Maschine kopiert. Anschließend bennent ein ssh Befehl diese Dateien remote um in Ihre Zielnamen. Für das Fehlehandling frage ich anschließend die Returncodes ab:

scp $file $USER@$HOST:$TDIR/$tempfile
rc1=$?
ssh $USER@$HOST "mv $TDIR/$tempfile $TDIR/$basefile"
rc2=$?

Das funktioniert auch alles wunderbar, die Dateien werden immer schön kopiert und ascnhließend umbenannt, alles ok.
Aber das Ergebnis: ich kriege beim ssh immer einen Returncode 255 zurück.

Ich habe schon etliche Tests gemacht, festzuhalten ist, dass es an folgenden zwei Dingen liegt:
Problem 1: das Script ist als Dauerläufer unter nohup gestartet
Problem 2: die remote Maschine ist eine HP Nonstop

Wenn ich das ganze ohne nohup mache, bekommen ich RC 0. Wenn ich das ganze mit (oder auch ohne) nohup anstatt auf die Nonstop auf eine Unix Kiste mache, ebenfalls RC 0 (egal welches Unix OS, habe mehrere ausprobiert).

Die Befehle in ein Script auszulagern hab ich auch versucht, ohne Erfolg. Das Script ohne nohup laufen zu lassen ist nicht drin, da hängt noch mehr Business Logik dahinter.

Kann mir hierbei vielleicht jemnd helfen? Habe schon mit einigen Experten rumgetestet (u.a. mit einem Support Menschen aus den USA von HP), kein Erfolg. Die ssh Version haben wir auch schon updedatet.
Wenn jemand von Euch ein HP Forum kennt, bitte melden, ich habe im Netz keines gefunden.

Danke im Voraus für jeden hilfreichen Hinweis.
 
Eine Antwort auf Deine Frage habe ich nicht, doch weswegen benutzt Du nicht einen Befehl:
Code:
scp $file $USER@$HOST:$TDIR/$basefile"
? Vielleicht loest dies das Problem?
 
Hi,

wie man der manpage entnehmen kann, sagt dir der returncode 255 dass ein Fehler aufgetreten ist, soweit warst du sicher schon. ;)
Hast du mal mit verbose (-vvv) geguckt ob dir der debug output sagt was falsch laeuft?

Ansonsten ist es schon etwas merkwuerdig dass nohup Teil des Problems ist. Ich hab mir grad mal den source code von meiner nohup Version angeguckt, da passiert nicht viel ausser dass Input und Output umgeleitet werden, und dann erwartungsgemaess ein signal(SIGHUP, SIG_IGN) mit folgendem execvp (*cmd, cmd).
Vielleicht spasseshalber mal ein nohup kompilieren dass die Umleitungen weglaesst, also ein minimal Programm das SIGHUP ignoriert? Bzw. andersrum, ohne signal(SIGHUP, SIG_IGN).

Wenn ich morgen die Zeit finde wuehl ich mich mal ein wenig durch den source code von ssh, vielleicht find ich ja was. Koennte lehrreich sein.

Edit:
Wobei mir auch nicht ganz klar ist wieso du da zwei Schritte draus machst, aber vielleicht hast du ja deine Gruende.

MfG,
bytepool
 
Die zwei Schritte mache ich, weil das File auf der remote Machine in dem Zielverzeichnis noch weiter verarbeitet wird. Da läuft ein Dauerläufer und checkt zyklisch (minütlich) auf bestimmte Dateien (mit ner bestimmten Dateineindung). Wenn ich ne große Datei transferiere und während des Kopiervorgangs die Datei von der Weiterverarbeitung gezogen wird ohne daß die Übertragung abgeschlossen ist, fällt die Verarbeitung der Datei auf die Schnauze. Daher erst scp mit nem temporären Dateinamen, den die Weiterverarbeitung nicht zieht und dann der mv per ssh in den Zieldateinamen.
(au0erdem hab ich mit dem scp noch n anderes Problem, der liefert immer Returncode 1, auch ohne nohup. Auch hier ist aber offensichtlich alles ok. Es liegt offensichtlich an der blöden Nonstop...)

Habe den ssh schon im Debugmodus mit -vvv laufen lassen, da kommt nix informatives bei raus. Kein Fehler zu erkennen, aber am Ende immer Exit Status -1.

Das mit der nohup-Kompilierung muss ich mal mit Kollegen besprechen, bin nicht der Profi, brauche dabei dann noch UNterstützung...
Hab aber noch ne Idee für nen Workaround, den werd ich morgen mal ausprobieren...
 

Ähnliche Themen

Zeichenkette per Skript an shell übergeben

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben