Dieser Beitrag kann helfen. Die Empfehlung lautet:
- Hintergrund des Prozesses (mit Strg-Z, dann bg )
- Führen Sie disown -h% [jobid] aus (wahrscheinlich ein Bash-Ismus, daher müssen Sie für tcsh übersetzen).
Die schlechte Nachricht ist natürlich, dass das BG in derselben Shell ausgeführt werden muss, in der der Prozess ausgeführt wird ... aber ... möglicherweise ist es bereits im Hintergrund.
Die wirklich schlechte Nachricht ist, dass der Ablehnungsaufruf möglicherweise in derselben Shell ausgeführt werden muss. In diesem Fall sind Sie geschraubt. Aber ich bin mir nicht sicher, vielleicht kann root es zwangsweise trennen.
Hmm. Mögliche gute Nachrichten - tcsh führt die Ablehnung automatisch durch:
Wenn tcsh abnormal beendet wird, werden Jobs, die im Hintergrund ausgeführt werden, beim Beenden automatisch abgelehnt.
Wenn Ihr langfristiger Prozess bereits im Hintergrund ausgeführt wird, sollte das Beenden des übergeordneten tcsh-Prozesses die Fortsetzung ermöglichen. Der Prozess ist jetzt vom Startterminal getrennt. (Wenn nicht, siehe "schlechte Nachrichten" oben.)
Leider ist es kein Bildschirm, so dass es keine echte Wiederverbindung gibt. Sie können es vielleicht mit gdb vortäuschen (wieder vom ersten Link):
[...] mit einigen schmutzigen Hacks ist es nicht unmöglich, einen Prozess 'stdout / stderr / stdin' erneut zu öffnen.
Sie können also weiterhin ein leeres Bildschirmfenster erstellen (z. B. das den Ruhezustand ausführt).
Und dann verwenden Sie gdb zum Beispiel, um eine Verbindung zum Prozess herzustellen. Führen Sie einen Anruf aus. Schließen (0)
Rufen Sie Schließen auf (1)
Rufen Sie Schließen auf (2)
Rufen Sie Öffnen auf ("/ dev / pts / xx", ...
).
nennen dup (0)
detach
Die Ausgabe des Prozesses wird auf dem Bildschirm angezeigt. Es würde nicht an dieses Bildschirmterminal angeschlossen werden, so dass beispielsweise [sic] den Befehl "sleep" beenden würde, nicht den Prozess, aber das könnte für das OP ausreichen.
Ich frage mich, ob es in diesem Prozess nicht auch "call dup (1)" und "call dup (2)" geben sollte ...