#1 Background tasks

Open
opened 5 years ago by maxime-alves · 2 comments

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 commented 5 years ago
Poster

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 commented 5 years ago
Owner

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 ;)
Sign in to join this conversation.
No Label
No Milestone
No Assignees
2 Participants
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
Cancel
Save
There is no content yet.