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 nohup
création nohup.out
?
command-line
nohup
orschiro
la source
la source
byobu
. :)byobu
, commencez ce que vous voulez, puis appuyez surF6
et vous avez terminé. Vous pouvez y revenir en exécutant àbyobu
nouveau.Réponses:
Vous pouvez rediriger la sortie où bon vous semble, par exemple:
la redirection empêche la
nohup.out
création du fichier de sortie par défaut ./dev/null
est 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>&1
en&>/dev/null
Pour les programmes que j'utilise souvent, je crée un alias (et je l'ajoute à mon
.bashrc
) par exempleMaintenant, tout ce que je dois taper est
show_state
la source
show_state () { /bin/bash -c "$@" &>/dev/null }
? (Attention: mauvaise syntaxe et ne fonctionnera probablement pas! C'est juste un exemple!). Un nitpick: pourquoishow_state
quand vous jetez la sortie denohup
?.py
fichier. 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?&>
fonctionnait (et à mon avis, cela ressemble à un arrière-plan plus une redirection standard). Je l'ai toujours appris comme>&
. Est-ce standard?