Nohup'ın ~ / nohup.out dosyasını oluşturmasını nasıl önleyebilirim?


16

Daha $ nohup ...sonra terminal penceresini kapatabilmek için arka planda bir uygulama başlatmak için komutu kullanıyorum .

Yürütme üzerine dosyayı oluşturur ~/nohup.out.

Misal:

orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'

nohupOluşturmayı nasıl önleyebilirim nohup.out?


2
Siz de düşünebilirsiniz byobu. :)
— Andrea Lazzarotto

Teşekkürler @AndreaLazzarotto! Nasıl kullanılacağına dair bir örnek verebilir misiniz?
— orschiro

2
Burada videoya bir göz atmanızı öneririm : byobu.co Temel olarak, ne yapmak istediğiniz için sadece koşun byobu, ne istersen başlayın, sonra düğmesine basın F6ve işiniz bitti. byobuTekrar koşarak geri dönebilirsiniz .
— Andrea Lazzarotto

Mükemmel! Bunu resmi bir cevap olarak eklemek ister misiniz?
— orschiro

Teknik olarak, önerim sorunuza hiç cevap vermiyor, sadece bir alternatif. : D
— Andrea Lazzarotto

Yanıtlar:


20

Çıkışı istediğiniz yere yeniden yönlendirebilirsiniz, örneğin:

nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1

yönlendirme, varsayılan çıktı dosyasının nohup.outoluşturulmasını engeller . /dev/nullunutulmadığından, verileri hiç istemiyorsanız, oraya gönderin.

Bash'da kısaltmak >/dev/null 2>&1için&>/dev/null

Sık kullandığım programlar .bashrciçin, örneğin bir takma ad oluşturuyorum ve

alias show_state='nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1'

Şimdi yazmam gereken tek şey show_state


2
@orschiro: Birkaç yıl sonra şifreli olmayacak ve hatırlayacaksınız;) Onunla yapışmayı öneriyorum, çünkü onu taklit etmek bu deneyimi kazanamayacağınız ve BASH yeniden yönlendirme operatörlerinin nasıl çalıştığını bilmek anlamına geliyor. kafanız çok önemli bir beceridir.
— Monica ile Hafiflik Yarışları

Bu bir işlev olarak daha iyi olmaz mıydı? Gibi bir şey show_state () { /bin/bash -c "$@" &>/dev/null }? (Uyarı: zayıf sözdizimi ve muhtemelen işe yaramaz! Bu sadece bir örnek!). Bir nitpick: neden show_stateçıkışını attığınızda nohup?
— Ismael Miguel

Ben komut dosyası @IsmaelMiguel ne bilmiyorum ama stdout "durumu" (ne olursa olsun) yazdırmak için değil, bir tepsi simgesi ile bir gösterge olduğunu varsayalım. Elbette, bir işlev bir takma
— addan

Oh anladım! Üzgünüz, .pydosyanın adını görmedim . Ve evet, bir fonksiyon daha eğlenceli. Bir Debian masaüstünde bu kötü yazılmış işlevi vardır: shutup() { source "$@" >/dev/null 2>&1 & }. Ve çalışıyor. Belki benzer bir şey önerebilirsin, ama çok daha iyi?
— Ismael Miguel

Bunun &>işe yaradığını asla bilmiyordum (ve bence arka plan artı stdout yönlendirmesi gibi görünüyor). Ben hep böyle öğrendim >&. Standart mı?
— Random832
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.