
Ich verbinde mich mit einem Remote-Server und führe etwa Folgendes aus:
cat /dev/zero > /dev/null & disown %-
Dann mache ich das logout
und verbinde mich erneut. ps
Es wird angezeigt, dass kein cat
Prozess läuft. Warum?
Antwort1
Dieser Befehl funktioniert bei mir. Er scheint jedoch viele Ressourcen zu verbrauchen. Vielleicht möchten Sie Folgendes versuchen:
sleep 999 & disown %-
und führen Sie ps aux | grep sleep
stattdessen ein erneutes Anmelden durch.
Wenn Sie jedoch wissen, dass Sie den Prozess ablehnen möchten, bevor Sie ihn starten, können Sie einfach nohup verwenden:
nohup sleep 999
Antwort2
Verwenden Sie %%
oder %+
für den „aktuellen“ (zuletzt im Hintergrund stehenden) Job. %-
ist für denvorherigeJob, also der vorletzte gestoppte oder in den Hintergrund geschaltete Job. Sie bedeuten dasselbe, wenn es nur einen Job gibt. Wenn Sie jedoch in einem früheren Teil Ihrer Shell-Sitzung oder Ihres Skripts einige Hintergrundjobs laufen gelassen haben, zielt die von Ihnen verwendete Methode %-
wahrscheinlich nicht auf den Job ab, den Sie vermuten.