Olası Kopya:
Başlamış bir işlemi Nohup/ekranlayabilir miyim?
Unix'te (özellikle Linux), düzenli bir ssh-> bash oturumunda bir işe başladım. Yakında işten ayrılmak istiyorum, ama şimdi işin birkaç saat alacağını anlıyorum.
Bu işe daha yeni başlamış olsaydım, ayrılabilir ve eve gidebilirdim. Ama etmedim.
İşi ssh oturumundan çıkarmanın herhangi bir yolu var mı, bu yüzden bilgisayarımı kapatabilirim (TCP bağlantıyı bırakarak ve ssh oturumunu öldürmek) ve programın çalışmaya devam etmesini sağlayabilir miyim?
Çıktısı umurumda değil - aslında, stdout'u bir dosyaya yönlendirdim. Sadece bitirmesini istiyorum.
İşlemi kesmek için ctrl-z
Tuşuna basabilir ve ardından arka planda çalışmasını sağlamak için bg
çalıştırabilirsiniz.
Bu şekilde arka plana sahip tüm işlemleri jobs
ile numaralandırılmış bir liste gösterebilirsiniz.
Ardından, işlemi terminalden ayırmak için disown %1
(1
Yerine jobs
ile işlem numarası çıktısını koyabilirsiniz) çalıştırabilirsiniz.
İsme rağmen, disown
çalıştırıldıktan sonra işlem hala size ait olacak, sadece başlattığınız terminalden ayrılacaktır.
Aradığınız komutun "reddedilmesi" olduğuna inanıyorum
Kullanın Nohup komutu & Çok güzel: Root @ index: ~ # Nohup/usr/bin/curl localhost/begemot.php & [1] 894 Root @ index: ~ # Nohup: girişi yok saymak ve çıktıyı `` Nohup.out '' 'A ve bu terminalin çıkışına eklemek, bir görev devam edecek ...
Bash Shell'inizden:
control+z
Ardından, işi arka planda çalıştırmaya devam etmek için:
bg
Daha sonra, işleminizin hala çalışıp çalışmadığını görmek için jobs
yazabilirsiniz.
reptyr iç ekran kullanırken, işlemi (veya çıktısını) ekrana taşıyabilirsiniz.
Bu sorunu önlemek için düzenli olarak kullandığım ana bilgisayarlara bağlandığımda otomatik olarak çalışacak screen
ayarına geçtim.
http://tlug.dnho.net/?q=node/239 bunu yapmanın bir yoludur, ancak başka varyasyonlar da vardır.
Seansın ortasında beklenmedik bir bağlantı kesildiğimde beni bir veya iki kez kurtardı ve aksi takdirde uzun soluklu bir şeye başlamadan önce screen
'ı başlatmayı unuturdu.
Crtl-Z sonra bg kullanmak veya komutu kullanırken & kullanmak% 100'de güvenilir değildir. Çoğu durumda çalışır, ancak bazı durumlarda beklendiği gibi çalışmayabilir (G/Ç kullanımı, ...).
Ekran güvenilir bir çözümdür.
Eğer bash kullanıyorsanız, control-Z ve bg ile arka plandan şüphelenebilirsiniz.
İş kontrolü (man bash'tan)
If the operating system on which bash is running supports job
control, bash contains facilities to use it. Typing the
suspend character (typically ^Z, Control-Z) while a process
is running causes that process to be stopped and returns control
to bash. Typing the delayed suspend character (typically ^Y,
Control-Y) causes the process to be stopped when it
attempts to read input from the terminal, and control to be
returned to bash.
yardım bg
bg: bg [job_spec ...]
Place each JOB_SPEC in the background, as if it had been started with
`&'. If JOB_SPEC is not present, the Shell's notion of the current
job is used.
yardım işleri
jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args]
Lists the active jobs. The -l option lists process id's in addition
to the normal information; the -p option lists process id's only.
Önceden arka planda çalışmasını istediğinizi biliyorsanız, unix komutu at iyi bir seçenektir. Komutları planlanan zamanda arka planda başlatır, tıpkı tekrarlamayan bir cron işi gibi. Dağıtımınıza bağlı olarak, yüklemeniz ve atd arka plan programını başlatmanız gerekebilir.