Comment puis-je empêcher nohup de créer le fichier ~ / nohup.out?


16

J'utilise la commande $ nohup ...pour démarrer une application en arrière-plan afin de pouvoir ensuite fermer la fenêtre du terminal.

Lors de l'exécution, il crée le fichier ~/nohup.out.

Exemple:

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

Comment puis-je empêcher la nohupcréation nohup.out?


2
Vous pourriez également envisager byobu. :)
Andrea Lazzarotto

Merci, @AndreaLazzarotto! Pouvez-vous me donner un exemple d'utilisation?
orschiro

2
Eh bien, je vous suggère de regarder la vidéo ici: byobu.co Fondamentalement, pour ce que vous voulez faire, vous exécutez simplement byobu, commencez ce que vous voulez, puis appuyez sur F6et vous avez terminé. Vous pouvez y revenir en exécutant à byobunouveau.
Andrea Lazzarotto

Excellent! Vous voudrez peut-être ajouter ceci comme réponse officielle?
orschiro

Techniquement, ma suggestion ne répond pas du tout à votre question, c'est juste une alternative. : D
Andrea Lazzarotto

Réponses:


20

Vous pouvez rediriger la sortie où bon vous semble, par exemple:

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

la redirection empêche la nohup.outcréation du fichier de sortie par défaut . /dev/nullest l'oubli, donc si vous ne voulez pas du tout les données, envoyez-les là.

En bash, vous pouvez abréger >/dev/null 2>&1en&>/dev/null

Pour les programmes que j'utilise souvent, je crée un alias (et je l'ajoute à mon .bashrc) par exemple

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

Maintenant, tout ce que je dois taper est show_state


2
@orschiro: Après quelques années, ce ne sera plus cryptique et vous vous en souviendrez;) Je suggère de rester avec, car le replacer signifie que vous ne gagnerez pas cette expérience, et de savoir comment les opérateurs de redirection BASH fonctionnent par le haut de votre tête est une compétence cruciale.
Courses de légèreté avec Monica

Ne serait-ce pas mieux en fonction? Quelque chose comme ça show_state () { /bin/bash -c "$@" &>/dev/null }? (Attention: mauvaise syntaxe et ne fonctionnera probablement pas! C'est juste un exemple!). Un nitpick: pourquoi show_statequand vous jetez la sortie de nohup?
Ismael Miguel

Je ne sais pas ce que fait le script @IsmaelMiguel mais je suppose que c'est un indicateur avec une icône de plateau, pas pour imprimer "état" (quel qu'il soit) sur stdout. Bien sûr, une fonction peut être plus amusante qu'un alias ^. ^
Zanna

Oh je l'ai! Désolé, je n'ai pas vu le nom du .pyfichier. Et oui, une fonction est plus amusante. J'ai cette fonction mal écrit sur un ordinateur de bureau Debian: shutup() { source "$@" >/dev/null 2>&1 & }. Et il fonctionne. Peut-être pourriez-vous suggérer quelque chose de similaire, mais beaucoup mieux?
Ismael Miguel

Je n'ai jamais su que cela &>fonctionnait (et à mon avis, cela ressemble à un arrière-plan plus une redirection standard). Je l'ai toujours appris comme >&. Est-ce standard?
Random832
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.