Il m'est impossible de mettre un processus s'executant automatiquement en arrière plan, je dois toujours confirmer avec un 'bg'
j'obtiens cela après un maCMD&
[1] + suspended (tty output) maCMD
Alors que ca devrait être "+ running", non?
Parcontre, quand je stoppe un processus par Ctrl+z et que je tapote 'bg', il me met bien le processus tournant en fond.
Qu'est-ce qui cloche, svp?
Je suis trop rouillé.
# .
Posté par M . Évalué à 2.
[^] # Re: .
Posté par Raphaël G. (site web personnel) . Évalué à 2.
$ setsid ta_commande
Ou :
$ ta_commande
Ctrl+z
[1]+ Stopped ta_commande
$ bg
(enfin celui là je suis pas sûr de ce qui arrive si tu clos le shell)
[^] # Re: .
Posté par M . Évalué à 2.
le mieux est un truc du genre :
(ta_commande 1> /dev/null 2> /dev/null < /dev/null &)
[^] # Re: .
Posté par Jllc . Évalué à 1.
Pour la question de Laphyntix, il faudrait qu'il nous fasse un copier collé de son shell, que l'on voit exactement ce qu'il tape, et ce que répond le shell.
[^] # Re: .
Posté par Laphyntix . Évalué à 1.
Par exemple:
C'est pour le lancement d'un script personnalisée, mais si je ne peux pas mettre un processus en fond, ca me poserait quelques soucis.
Raphael: le 'setsid' fonctionne mais ca crée une nouvelle session.
Juste par curiosité, est-ce normal qu'avec la méthode que j'utilisais, le processus s'arrête en arrière plan?
Car de mémoire, je ne pense pas que ca se passait comme cela par le passé.
Sinon Merci les gars pour votre intervention.
[^] # Re: .
Posté par Jllc . Évalué à 3.
Dans le cas de mplayer, on ne peut le contrôler que par des commande claviers, par le terminal. S'il se retrouve en tâche de fond, on ne peut plus le envoyer de commande de lecture/pause/arrêt.
A moins bien sûr qu'il dispose d'un mode de fonctionnement en démon, à préciser par une option ...
[^] # Re: .
Posté par Laphyntix . Évalué à 1.
Donc sans avoir à confirmer par un 'bg'.
Je pensais que c'était possible avec un '&' suivant la fameuse commande.
Est-ce possible ou non? Mes souvenirs sont trompeurs.
Quant à MPLAYER, il tourne très bien en tâche de fond.
Merci
[^] # Re: .
Posté par netsurfeur . Évalué à 2.
Oui, à condition que la commande n'essaie pas de dialoguer avec le terminal. Dans ce cas, le kernel suspend le programme (d'où le "suspended (tty output)") jusqu'à ce que celui-ci y ait à nouveau accès.
Dans le cas de mplayer, je viens de tester et j'obtiens les résultats suivants:
mplayer fichier &
mplayer est suspendu; si je fais "fg" puis CTRL-Z "bg", il continue bien en background.
mplayer fichier < /dev/null &
mplayer tourne sans problème en arrière plan.
Conclusion:
mplayer doit faire un accès au "standard input" au démarrage, ce qui provoque sa suspension.
Il ne doit plus en faire par la suite, il n'est donc pas bloqué après la mise en arrière-plan manuelle
[^] # Re: .
Posté par 태 (site web personnel) . Évalué à 3.
Donc plutôt que de balancer /dev/null comme entrée, on peut se contenter de l'option -slave de mplayer qui fait qu'il n'attend plus quoi que ce soit du tty qui l'a lancé. A combiner avec l'option -really-quiet sinon il va continuer de pourir la console. (il y a aussi l'option -idle qui pourra peut-être servir, selon ce que veut faire Laphyntix). MPlayer écoute en effet ce qui lui est dit depuis le tty (sinon, ce serait difficile de l'interrompre quand il lit des fichiers audio...)
Conclusion :
mplayer est un programme particulier : il cause avec l'entrée et la sortie standard. Il ne te vient pas à l'idée de mettre mutt en arrière plan par exemple. Mais les programmes à gui où sans interaction peuvent se détacher (iceape, xterm, wget...).
Et lire le man de mplayer est fastidieux mais utile (utilise groff -man -T html si lire du man te révulse).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.