Kann ich es irgendwie rückgängig machen, wenn ich disown
einen Job habe bash
und meine Meinung ändere?
Wenn ja, ist es möglich, einen beliebigen Prozess unter Jobkontrolle zu bringen (eine akzeptable Einschränkung wäre, dass ich den Prozess besitze)?
Und schließlich würde dies den folgenden Workflow ermöglichen:
- Job in den Hintergrund stellen (
^z
gefolgt vonbg
) - Holen Sie sich seine PID (
jobs -p %+
um seine zu bekommen<pid>
) - Öffnen Sie eine
screen
odertmux
Sitzung, hängen Sie sie an und verwenden Sie sie für die folgenden Schritte - Verwenden Sie
reptyr
, um den Job zu ergreifen (reptyr <pid>
) <pid>
zur Jobsteuerung der Shell hinzufügen ( ist das überhaupt möglich? )- beende den Job (
^Z
)
Ich kann alles außer den letzten beiden Schritten tun. Das Stoppen des Jobs mit ^Z
funktioniert nicht, da der Prozess nicht in der Jobliste der Shell enthalten ist.
Meine Forschung zeigt, dass es nicht möglich ist, eine PID zu besitzen (umzukehren disown
), aber hoffentlich irre ich mich ...
bg
einen Job in den Hintergrund stellen, wird seine Prozess-ID "in der aktuellen Shell-Ausführungsumgebung bekannt" , als wäre er als asynchrone Liste gestartet worden . Siehe Asynchrone Listen . Aber auf jeden Fall sollten Sie, wenn Sie so weit gehen und sich hauptsächlich auf Linux zu konzentrieren scheinen, wahrscheinlich nur mit Namespaces arbeiten .
^Z
war nur ein Beispiel für etwas , das nicht möglich ist , ohne das es im Besitz von dem Shell. Ich glaube nicht, dass Ihr Kommentar der Frage einen Mehrwert verleiht.
SIGSTOP
perkill
Befehl ein Signal senden .