Matlab im Hintergrund laufen

7

Ich betreibe Matlab auf 48 virtuellen Maschinen und möchte es automatisieren. Ich ssh in die Maschinen und benutze dann matlab -r matlab_command > outfile.txt & , um den Prozess im Hintergrund laufen zu lassen und gut laufen zu lassen, wenn ich mich auslogge. Das einzige Problem ist, dass, wenn ich jobs mein Prozess gestoppt ist und nicht starten, bis ich fg ^ z bg . Gibt es ein Matlab-Flag, damit ich es im Hintergrund laufen lassen kann, ohne dass es aufhört?

Danke, Mike

Zur Klarstellung ist dies die Reihenfolge der Befehle, die nicht funktionieren

ssh server

matlab -r matlab_command > outfile.txt &

jobs

[1] Gestoppt

Um das zu beheben,

fg

^ z

bg

logout

und es funktioniert jetzt

    
msandbot 08.06.2010, 19:48
quelle

6 Antworten

16

Verwenden Sie den Befehl nohup unter UNIX, um zu verhindern, dass MATLAB beim Abmelden stoppt.

%Vor%

Und vergessen Sie nicht, exit; am Ende von matlab_command script einzufügen.

UPDATE:

Probieren Sie diese Lösung aus: Ist es möglich, MATLAB im Hintergrund unter UNIX auszuführen? ?

Es gibt eine Erklärung hier .

    
yuk 08.06.2010, 19:58
quelle
9

Die wirklich saubere Lösung für Ihr Problem ist GNU-Bildschirm . Dann werden Sie Ihre Matlab-Sitzung nicht verlieren und Sie können immer wieder in die Matlab-Eingabeaufforderung zurückkehren. Sehr hilfreich, wenn jemand mit Ihrem Matlab-Code falsch gegangen ist und Sie ein wenig debuggen müssen.

Starten Sie einfach ' screen ' (nachdem Sie das Paket installiert haben, in allen wichtigen Distributionen enthalten). Sie werden eine typische Eingabeaufforderung haben, aber in einem persistenten, virtuellen Terminal. Starten Sie wie gewohnt Ihr Matlab, lassen Sie keine Hintergründe aus. Drücken Sie dann STRG + A, D (zuerst STRG + A, dann d). Sie werden den Bildschirm verlassen. Sie können sich abmelden. Wenn Sie zu Ihrer Bildschirmsitzung zurückkehren möchten, führen Sie screen -r aus. Wenn Sie möchten, können Sie auch screen matlab [...] direkt starten. Dies hat zur Folge, dass Ihre virtuelle Sitzung ebenfalls gelöscht wird, wenn Matlab beendet wird.

    
ypnos 08.06.2010 21:10
quelle
2

Ich hatte Probleme mit dem Bildschirm: Matlab begann, hatte aber keine Ahnung, was durch die Standardeingabe passiert war. Es hat es einfach ignoriert.

Aber ich war erfolgreich mit tmux . Hier ist die Befehlszeile, die ich verwendet habe,

%Vor%

Sie können dann ssh auf den Remote-Host zugreifen (hier mit dem Präfix remote$ gekennzeichnet) und die Dinge überprüfen, indem Sie remote$ tmux a -t matlab ausgeben. Sie trennen sich von Ihrem Remote-Host, indem Sie Ctrl-b d drücken. Sie listen Sitzungen mit remote$ tmux ls auf (wie Bildschirm). Sie beenden die Sitzung von innen mit Ctrl-b & und von außen mit $remote tmux kill-session -t matlab .

Aber ich habe entdeckt, dass Sie auch von Ihrem lokalen Host aus direkt an Ihre tmux-Sitzung anhängen können:

%Vor%

Beachten Sie, dass ich anstelle von -t -f verwenden musste.

    
meteore 27.10.2014 21:49
quelle
1

Ich verwende diese Problemumgehung, die einen Dummy-Standard in folgendem Format bietet:

%Vor%     
MRule 12.04.2013 23:34
quelle
0

Wenn Sie eine Datei verwenden:

nohup matlab -nodesktop -nodisplay < file.m > result.txt &

Möglicherweise müssen Sie nach dem Ausführen die Eingabetaste drücken.

    
Tamaki Sakura 28.08.2014 19:10
quelle
0

Ich habe einige nützliche Links Tipps zum Ausführen großer Berechnungen und nohup

%Vor%

vielleicht kann dies Ihr Problem beheben.

    
Olarik Surinta 19.11.2014 13:31
quelle