Olası Kopyalama:
Halihazırda başlatılmış 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 süreceğini biliyorum.
Bu işi ekrana daha yeni başlamış olsaydım, evden ayrılıp gidebilirdim. Ama ben yapmadım.
İşi ssh oturumundan ayırmanın bir yolu var mı, bu yüzden bilgisayarımı kapatabilirim (TCP bağlantısını bırakıp ssh oturumunu öldürerek) ve programın çalışmaya devam etmesini sağlayabilir miyim?
Çıktısını umursamıyorum - aslında, stdout'u bir dosyaya yönlendirdim. Ben sadece bitirmek için koşmak istiyorum.
Basabilirsiniz
ctrl-z işlemi kesmek ve sonra çalıştırmak
bg arka planda çalışmasını sağlamak için.
Numaralandırılmış bir liste ile bu şekilde arka planlanmış tüm süreçleri gösterebilirsiniz.
jobs.
Sonra koşabilirsin
disown %1 (replace
1 tarafından işlem numarası çıkışı ile
jobs) işlemi terminalden ayırmak.
İsmine rağmen, işlemden sonra işlem hala size ait olacaktır.
disown, sadece başladığınız terminalden ayrılacaktır.
Bu cevap daha fazla bilgi içeriyor
Aradığın komutun "disown" olduğuna inanıyorum.
Bash kabuğunun içinden:
control+z
Ardından, işi arka planda çalışmaya devam etmek için:
bg
Sonra yazabilirsiniz
jobs işleminizin hala devam edip etmediğini görmek için.
Kullanırken reptyr ekranın içinde işlemi (veya çıktısını) ekrana taşıyabilirsiniz.
kullanım
nohup komutu ve
Güzel:
root @ index: ~ # nohup / usr / bin / kıvrımlı localhost / begemot.php &
[1] 894
root @ index: ~ # nohup: girişi görmezden gelir ve çıktıyı nohup.out'a ekler
ve bu terminalin çıkışı, bir görev devam edecek ...
Crtl-Z kullanarak bg veya komutunu çalıştırdığınızda% 100 güvenilir değildir. Çoğu durumda çalışır, ancak bazı durumlarda beklendiği gibi çalışmayabilir (I / O kullanımı, ...).
Ekran güvenilir bir çözümdür.
Kurmaya koyuldum
screen Bu sorunu önlemek için düzenli olarak kullandığım ana bilgisayarlara bağlandığımda otomatik olarak çalıştırılacak.
http://tlug.dnho.net/?q=node/239 Dışarıda başka varyasyonlar olsa da, bunu yapmanın bir yolu.
Beklenmedik bir bağlantı kesintisi yaşandığımda beni bir veya iki kez kurtardı ve aksi takdirde başlamayı unutmuş olurdum
screen uzunca bir şey yapmaya başlamadan önce.
Eğer bash kullanıyorsanız, kontrol-Z ve arka plandan bg ile şüphelenebilirsiniz.
İş kontrolü (adam bash)
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 etmek 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 çalıştığını önceden biliyorsanız, unix komutu en iyi bir seçenektir. Tekrarlanan bir cron işi gibi, planlanan zamanda arka planda komutlar başlatır. Dağıtımınıza bağlı olarak, onu yüklemeniz ve atd sunucusunu başlatmanız gerekebilir.