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.