Daha sonra konsol etkileşimine ihtiyaç duyan programlar dışında kalanlar (örneğin, kullanıcının gerçekten "gerçekten zorla mı?" Sorusunu sormak istediği için STOP durumuna giren "apt -y update"; .... artık kimse izlemiyorsa).
Bu deliği tıkamak ve süreci bir terminal asla asla kullanılamayacak şekilde bilgilendirmek için komutlarımın bazılarına <& - ekliyorum, onları aktif terminalden tamamen ayırmak STDIN'e artık mümkün olmadığını söylüyor. Eğer kullanıyorsanız / bin / bash'ın kabuğunuz olduğundan emin olun. Senaryo, herhangi bir istemi yayınlamak için mevcut olan hiçbir psödoterminal ile ilgili olmayan herhangi bir hatayı günlüğe kaydetmeye devam edecektir.
Örneğin:
`./runme.sh &> runme.log <&- & disown`
Mevcut terminal oturumundan ayrılmamın en iyi yoludur. Hem STDOUT hem de STDERR runme.log'a giriş yapar, konsolunuzun veya kabuğunuzun daha erken bitip bitmemesi veya farklı bir hesaba oturum açmanız / susturmanız (runme'dan terminal çöpü olmaması) ve ebeveyn-çocuktan ayrılmanız sayesinde bir önemi yoktur. PID ilişkisi kaldırıldı.
GÜNCELLEME: Ben bile bir semafor ile orijinal ebeveynin adı ile ilişkilendirerek sorun yaşadım, bu yüzden şimdi tavsiye ederim:
at now <<< "(cmd1; cmd2; etc.) &> logfile.log"
Elbette, çıktıyı CRON'dan e-posta ile göndermek istiyorsanız &> işaretini kaldırın ya da hepsini bir dosya yerine / dev / null dizinine yönlendirin.
screen
), diğer şeylerin yanı sıra, daha uzun süren işlemleri "sarmak" için kullanılabilir. Ondan ayrılabilir, kabuğa geri dönebilir, ardından yeniden takıp çalışan işlemin çıktısını görebilirsiniz. Yeniden ekleme, başka bir terminalden, SSH'den bile yapılabilir. Bu tür bir şeyi yapmanıza izin veren başka programlar da olabilir.