To jest moje zrozumienie o wykorzystaniu &
, disown
oraz nohup
:
<command>
Uruchamia proces w aktualnym terminalabash
przykład w nowej (czyli proces jest wymieniony jakobash
pracy nowej istdin
,stdout
istderr
nadal są związane z terminal ); nie jest odporny na zawieszanie się ;<command> &
Uruchamia proces w aktualnym terminalabash
przykład w tle (to proces jest wymieniony jakobash
pracy tła istdin
,stdout
istderr
nadal są związane z terminal ); nie jest odporny na zawieszanie się ;<command> & disown
: Uruchamia proces w bieżącym terminalubash
przykład, w tle , ale proces jest odłączony odbash
listy „s zatrudnienia” (czyli proces nie jest wymieniony jakobash
pierwszego planu / tła pracy istdin
,stdout
istderr
nadal są zobowiązane do terminalu ); odporny na zawieszanie się ;nohup <command> & disown
: Uruchamia proces w bieżącym terminalubash
przykład, w tle , ale proces jest odłączony odbash
listy „s zatrudnienia” (czyli proces nie jest wymieniony jakobash
pierwszego planu / tła pracy istdin
,stdout
istderr
są nie nadal związany z terminalem ) ; odporny na zawieszanie się ;
Tak więc, oprócz nohup <command> & disown
blokowania stdin
i przekierowanie stdout
i stderr
aby nohup.out
domyślnie, wydaje mi się, może to być uznane za całkowicie równoważne <command> & disown
.
Czy powyższe wszystko jest poprawne? Jakieś nieporozumienie?
bash
instancji nadrzędnej nie zabije procesu