Mes shellscripts prennent vraiment longtemps à courir, environ 30 minutes, mais si je pars et sort pour le déjeuner, je doute que:
1: la session de mastic sera-t-elle fermée si le script est en cours?
2: si la session de mastic se ferme, le script sortira.
Si j'utilise nohup scriptname
, ça va bien?
PuTTY (ou tout autre client SSH) ne se soucie pas si vous regardez l'écran ou à l'extérieur. Il ne ferme pas une session seule.
Une session sera fermée uniquement si:
logout
, Ctrl + D , exit
, etc., etc.) Ce dernier ne devrait pas se produire de façon aléatoire, même si un équipement peu coûteux pourrait «commodément» fermer les connexions lorsqu'ils pensent qu'ils sont inactifs. Cela se produit généralement avec des équipements SOHO qui contiennent très peu de mémoire et une connexion agressivement étroite lorsqu'ils devinent qu'ils ne sont plus utilisés.
Jusqu'à présent pour puTTY et sessions. Quant à nohup
, plongeons un peu plus profondément.
Dans les premiers jours, les gens utilisaient des lignes téléphoniques et des modems pour composer. Parfois, cette connexion est morte. Dans ce cas, la coque obtient un signal que la ligne a détecté un coup de fouet. (Signal 1, HUP).
Lorsque cela se produit, le shell signale les programmes en cours d'exécution avec SIGHUP, ce qui signifie essentiellement que «la ligne téléphonique a chuté. Arrêtez-vous soigneusement. (Fermez les fichiers, enregistrez le cas échéant etc.).
Lorsque vous déconnectez-vous ou lorsque PuTTY (ssh) décède, cela se produit.
Si vous exécutez un programme avec nohup
deux choses arrivent:
nohup.out
) plutôt que sur l'ATS. Si j'utilise
nohup scriptname
, ça va bien?
Si vous utilisez nohup scriptname
et que le script n'a pas besoin d'entrée, alors oui, ça va bien. Si vous souhaitez voir la sortie du script pendant son exécution, vous pouvez affiner le fichier journal.
nohup scriptname &
tail -f nohup.out
Outre nohup
il existe au moins deux autres options intéressantes:
Les deux vous permettent non seulement de survivre à une ligne déconnectée, mais aussi de rattacher un terminal plus tard.
Exemple:
Assis derrière un ordinateur-1, connecté au serveur-1
screen
Démarre l'écran
make bzimage
Quelle que soit la tâche / script que vous voulez
Ctrl + A , Ctrl + DDétacher;
screen
semble avoir pris fin
logout
Déconnexion
À ce stade, l' screen
est toujours en cours d'exécution et fournit un shell pour votre script.
Disons que vous allez à la maison, asseyez-vous derrière votre propre bureau et ssh au serveur-1,
ssh server-1.work.tld
Nom d'utilisateur
mot de passe
screen -r
(Continuez un écran précédemment ajouté)
︙
Continuez où vous avez cessé au travail.