
Ich versuche, ein Programm vom Terminal aus so zu starten, dass folgendes passiert:
- Das Schließen des Terminals schließt das Programm nicht
- Das Programm gibt beim Öffnen, Verwenden oder Schließen nichts an das Terminal aus
- Das Terminal kann für andere Zwecke genutzt werden
- Der Befehl ist kurz und bündig
- Es gibt keine Ausgabedatei, über die Sie sich Gedanken machen müssen
Antwort1
Sehen man nohup
:
NAME
nohup - run a command immune to hangups, with output to a non-tty
Antwort:
nohup program-name &
Antwort2
Ich denke, das wäre der umfassendste Weg:
program-name </dev/null &>/dev/null &
disown %%
Wenn Sie den im Hintergrund ausgeführten Prozess ablehnen, wird er von der Shell nicht mehr verfolgt. Sie werden nicht benachrichtigt, wenn er abgeschlossen ist. Sie werden auch nicht daran gehindert, Ihre Shell zu schließen. %%
bedeutet „der zuletzt im Hintergrund ausgeführte Job“.
Wenn Sie alle Details verbergen möchten, fügen Sie eine Funktion wie diese in Ihre .bashrc ein
launch_and_forget () { "$@" </dev/null &>/dev/null & disown %%; }
Dann
launch_and_forget program args "args args" ...
Geben Sie einen Namen ein, der für Sie eine Bedeutung hat.
Antwort3
Sie können ganz einfachsetsid
:-
NAME
setsid - run a program in a new session
SYNOPSIS
setsid program [arg...]
DESCRIPTION
setsid runs a program in a new session.
Versuchen Sie den folgenden Befehl: -
setsid <command>
Beispiel: - setsid gedit
usw.setsid nautilus ~/Downloads/
Antwort4
Ich würde entweder empfehlentmux, alsSiyuan Renvorgeschlagen, oderGNU-Bildschirm. Auf diese Weise erhalten Sie ein neues Terminal für Ihren Befehl. Sie können es abnehmen und vergessen, aber Sie können es wieder verwenden, wenn Sie es sich anders überlegen.