batch sous macos: détacher un processus et tuer le père?

Eymerich

Membre confirmé
5 Avril 2003
61
3
55
Paris
Bonjour,

Je cherche comment lancer sur un macpro avec tiger un script bash qui va exécuter de très (très) longs traitements de façon à le laisser tourner en tâche de fond même après m'être déconnecté (en laissant la machine tourner évidemment) et profiter des vacances ;)

L'idée est d'utiliser ma machine comme un serveur de calcul, sur lequel je me connecte par ssh pour lancer des scripts d'exécutions, me déconnecte pendant quelque jours, et revenir toujours en ssh vérifier et relever les compteurs à distance:(.

Je faisais ça sur des comptes dans des centres de calcul, simplement dans mon shell en faisant suivre le script par un &, (ou de façon plus sophisitqué avec un prgramme de gestion de queue de batch.). Mais sur mon mac tiger le processus détaché avec un ampersand est automatiquement tué quand je me déconnecte en fermant le ssh.

merci
 
En cherchant bien le web voici deux pistes de solution:

- nohup "ma commande", qui lance une commande insensible aux interruptions(?)
et
- screen, qui permet de créer un shell virtuel et le détacher


Je cours tester !
 
Une fois un job lancé sous bash, tu peux le dissocier du shell avec la commande disown.

Pour voir la liste des jobs, tu tapes
Bloc de code:
jobs
Ensuite, pour en dissocier un, tu prends son numéro (pour l'exemple ce sera 2) et tu tapes :
Bloc de code:
disown %2