I python script appelé scrape.py
. Comme son nom l'indique, il s'agit d'un robot Web et je souhaite qu'il s'exécute en permanence sur ma machine Linux, même après ma déconnexion et la fin de la session SSH. J'ai beaucoup lu ici et de nombreuses suggestions ont été faites pour utiliser Nohup python scrape.py &
. Cela a bien fonctionné, mais l’exécution du script s’est arrêtée dès que je me suis déconnecté. J'ai aussi exploré l'application supervisor
mais je n'ai pas les permissions root, donc ça échoue aussi. Pouvez-vous me suggérer un moyen de résoudre ce problème? Je vous remercie.
Il existe plusieurs approches (outils et commandes) que vous pouvez utiliser à des fins similaires:
Utilisez les émulateurs de terminaux comme tmux
et screen
:
tmux
- multiplexeur de terminaux: il permet de créer, d'accéder et de contrôler plusieurs terminaux à partir d'un seul écran. tmux
peut être détaché d'un écran et continuer à s'exécuter en arrière-plan, puis rattachez-le ultérieurement. Des exemples de son utilisation de base sont fournis ici et ici .
screen
- gestionnaire d’écran avec émulation de terminal VT100/ANSI. C'est un gestionnaire de fenêtres plein écran qui multiplexe un terminal physique entre plusieurs processus (généralement des shells interactifs) ... Les programmes continuent de s'exécuter lorsque leur fenêtre n'est pas visible et même lorsque la session d'écran entière est détachée du terminal de l'utilisateur. Exemple d'utilisation est fourni ici .
Utiliser des commandes détachées exécutées en arrière-plan ( lire aussi ):
Nohup
- Exécute une commande insensible aux blocages, avec la sortie sur un non-tty; Exécutez COMMAND, en ignorant les signaux de blocage. Syntaxe courante pour envoyer une commande en arrière-plan et la dissocier de la session Shell en cours: Nohup COMMAND &
ou Nohup COMMAND >/dev/null 2>&1 &
si vous souhaitez suspendre le fichier info créé par Nohup
. Des exemples de son utilisation de base sont fournis ici et ici . De plus, ici montre comment l'utiliser via la commande ssh.
disown
- semblable à Nohup
mais il est construit avec Shell (zsh, ksh, bash); utilisé pour supprimer des travaux de la table des travaux ou pour marquer des travaux de sorte qu'aucun signal SIGHUP ne leur soit envoyé si le shell parent le reçoit (par exemple, si l'utilisateur se déconnecte). Exemple d'utilisation est fourni ici .
setsid
- crée une session et définit l'ID du groupe de processus. Exemple d'utilisation setsid "COMMAND"
. Plus d'exemples ici .
Utilisez les gestionnaires de planning comme at
et crontab
:
at
- exécute les commandes ultérieurement; at
et batch
lisent les commandes de l'entrée standard ou d'un fichier spécifié à exécuter ultérieurement, à l'aide de /bin/sh
. Exemple d'utilisation: echo "COMMAND" | at now + 1 minute
. Plus d'exemples ici .
crontab
- planifiez des travaux d'arrière-plan périodiques; il est bien connu à d'autres fins, mais vous pouvez spécifier un moment précis où votre commande ne sera exécutée qu'une seule fois. Une calculatrice Nice crontab est fournie ici .
Créez un service système et démarrez-le, voir: