J’ai un problème d’optimisation des queues d’impression, j’ai plusieurs imprimantes (Zebra étiquette) et j’ai fait un script qui balance les impressions depuis une file dans un fichier texte, mais ma commande /usr/bin/lp attends l’impression de chacune des étiquettes avant de passer à la suivante, je ne peux pas tester (vu que c’est en production) mais il doit bien y avoir un moyen de donner l’ordre et ne pas attendre qu’il se termine; j’ai pensé à ‘nohup’ ou le ‘&’ à la fin qu’est-ce qui parait juste ?
Tu veux bien parler des files d’attentes?
Tapez-pas, je sors!
Le “nohup” permettra de finir la commande d’impression même si le script est interrompue.
Le “&” te permettra de lancer toutes les commandes que tu souhaite en parallèle.
Pour le dernier cas il t’est possible d’attendre la fin de la ou des commandes avec “wait PID”.
[quote=“Mimoza”]Le “nohup” permettra de finir la commande d’impression même si le script est interrompue.
Le “&” te permettra de lancer toutes les commandes que tu souhaite en parallèle.
Pour le dernier cas il t’est possible d’attendre la fin de la ou des commandes avec “wait PID”.[/quote]
+1
nohup ça permet à la commande lp de survivre à ton script (attention ça génère un fichier je crois).
Il faut ensuite voir si tu peux lancer 2 lp en parallèle.
sinon, si tu utilises “bash”, tu as la builtin disown qui permet de détacher le process mis en backrgound. Lorsque ton script se terminera (ou même ta session), la tâche mis en background continuera à l’executer. Cela permet :
1 - de tracer dans le fichier que tu souhaites (et non nohup.out)
2 - d’avoir un controle sur tes jobs (au besoin)
ex d’uilisation :
script1 > trace1 &
disown -h %+
( le -h, c’est pour laisser le job dans la liste des jobs du contexte)
le %+ permet de spécifier le dernier job lancé
–> Job control
Je suis obligé d’utiliser KSH
Mais je regarde cette fonction, merci !