J'utilise Ubuntu 16.04 et j'ai besoin de la tmux
solution suivante parce que je veux exécuter un processus de temporisation avec sleep
comme dans mon cas particulier je n'étais pas satisfait at
et j'ai rencontré un bug avec nohup
(lors de la combinaison nohup-sleep
). Maintenant, tmux
semble la meilleure alternative car il a son propre mécanisme sans raccrochage et fonctionne réellement bien en utilisation manuelle (je pose la question uniquement en ce qui concerne l'automatisation du processus, je peux déjà le faire manuellement).
Ce dont j'ai besoin:
J'ai besoin d'un moyen de faire les 3 actions suivantes, en une seule opération:
- Attacher une nouvelle
tmux
session. - Injecter un ensemble de commandes prêt à cette session, comme
(sleep 30m ; rm -rf dir_name ; exit)
. Je préférerais surtout un ensemble multi-lignes, et non une longue rangée. - L'exécution de la commande ci-dessus définit le moment où elle a été écrite en tant que stdin dans la nouvelle
tmux
session.
En d'autres termes, je veux exécuter un ensemble de codes dans une autre tmux
session qui a été spécialement créé pour cette cause, mais tout faire en une seule opération.
Remarques:
Mon objectif est de tout faire à partir de ma session de travail d'origine (celle sur laquelle je travaille la plupart du temps). En général, je n'ai pas l'intention de visiter la session nouvellement créée, je veux juste la créer avec son code exécuté automatiquement et c'est tout.
Si possible, je préférerais une solution hérédoc. Je pense que c'est le plus efficace.
la source
1.
il y a deux façons de le faire, l'une consiste d'abord à créer un script temporaire (qui contient le code) et à l'exécuter avec creation et la seconde est un hérédoc façon.2.
Si la deuxième méthode fonctionne (lorsque chaque ligne d'écho contient chaque ligne de code de l'hérédoc), pourquoi devrions-nous voir cela comme un hack s'il s'agit d'un code valide Bash? Peut-être parce que les lignes de l'hérédoc sont répercutées et ne sont pas exécutées régulièrement dans les hérédocs?/dev/shm
. C'est aussi un hack car il est plus compliqué, difficile à lire, à comprendre et à maintenir que d'écrire simplement le script dans un fichier ordinaire et de commencer partmux
.1.
question) .tmux new-session -d -s "myTempSession" /opt/my_script.sh
il ne s'ouvre pas un fichier temporaire pour moi de coller le code ... Ce dont j'ai besoin est d'ouvrir le script directement à partir de la session en cours, ou au moins quelque chose pour passer à la nouvelle session, puis revenir directement à la session actuelle. BTW J'ai l'intention de donner une prime pour toute votre aide car c'est le moins que je puisse faire pour vous remercier et je pourrais donner une prime dans 11 heures.Voir également /server/339390/run-command-in-detached-tmux-session pour des exemples d'utilisation de la commande send-keys sur un volet détaché.
la source