#1 Background tasks

Відкрито
5 роки тому відкрито maxime-alves · 2 коментарів
maxime-alves прокоментував(ла) 5 роки тому

Une idée de feature : Pouvoir lancer des commandes en background, je pense que c’est utile pour les tâches prenant un peu de temps, ou lorsque la connection SSH n’est pas stable.

Une idée de feature : Pouvoir lancer des commandes en background, je pense que c'est utile pour les tâches prenant un peu de temps, ou lorsque la connection SSH n'est pas stable.
maxime-alves прокоментував(ла) 5 роки тому
Автор

J’ai ajouté l’option -B pour mettre une tâche en background. Cependant, récupérer la main sur la tâche n’étant pas évident (besoin de gdb, etc…), j’ai aussi trouvé utile de rajouter l’option -D.

L’option -D utilise l’utilitaire “dtach” qui permet de se rattacher à la session de la commande. mhssh affiche simplement le nom de la socket à rattacher au cas ou l’on veut voir la tâche en cours.

J'ai ajouté l'option -B pour mettre une tâche en background. Cependant, récupérer la main sur la tâche n'étant pas évident (besoin de gdb, etc...), j'ai aussi trouvé utile de rajouter l'option -D. L'option -D utilise l'utilitaire "dtach" qui permet de se rattacher à la session de la commande. mhssh affiche simplement le nom de la socket à rattacher au cas ou l'on veut voir la tâche en cours.
yannweb прокоментував(ла) 5 роки тому
Власник

Salut ! Merci pour la contrib, mais malheureusement je suis pas hyper pour ajouter ces options au script :( L’idée c’est vraiment qu’il soit très simple… D’autant qu’il ne s’agit pas tant d’ajouter des features à mhssh que d’y coder en dur des commandes habituels (les options -s pour screen et -t pour tmux seraient presque aussi légitimes).

Au besoin on peut utiliser des alias ou des fonctions bash (ou des scripts qui appels mhssh). Les deux fonctions, inspirés de ton patch, devraient fonctionner :

function mhssh_dtach { mhssh "TMPFILE=$(mktemp -u); dtach -n \$TMPFILE $@; echo \$TMPFILE"; }
function mhssh_nohup { mhssh "nohup $@ > /dev/null < /dev/null & PID=\$!; disown \$PID; echo \$PID"; }

Et si ça peut aider, j’ai pu contourner mes problèmes de SSH interrompus en lançant toujours mhssh en local : typiquement je me connecte à l’hyperviseur avec un ssh-agent, je lance un screen et le mhssh à l’interieur pour update les VM en local.

P.S. : ouai, nohup c’est la merde après ;)

Salut ! Merci pour la contrib, mais malheureusement je suis pas hyper pour ajouter ces options au script :( L'idée c'est vraiment qu'il soit très simple... D'autant qu'il ne s'agit pas tant d'ajouter des features à mhssh que d'y coder en dur des commandes habituels (les options -s pour screen et -t pour tmux seraient presque aussi légitimes). Au besoin on peut utiliser des alias ou des fonctions bash (ou des scripts qui appels mhssh). Les deux fonctions, inspirés de ton patch, devraient fonctionner : <pre> function mhssh_dtach { mhssh "TMPFILE=$(mktemp -u); dtach -n \$TMPFILE $@; echo \$TMPFILE"; } </pre> <pre> function mhssh_nohup { mhssh "nohup $@ > /dev/null < /dev/null & PID=\$!; disown \$PID; echo \$PID"; } </pre> Et si ça peut aider, j'ai pu contourner mes problèmes de SSH interrompus en lançant toujours mhssh en local : typiquement je me connecte à l'hyperviseur avec un ssh-agent, je lance un screen et le mhssh à l'interieur pour update les VM en local. P.S. : ouai, nohup c'est la merde après ;)
Підпишіться щоб приєднатися до обговорення.
Без мітки
Етап відсутній
Немає виконавеця
2 учасників
Дата завершення

Термін виконання не встановлений.

Залежності

Ця проблема в даний час не має залежностей.

Loading…
Відмінити
Зберегти
Тут ще немає жодного змісту.