web-dev-qa-db-fra.com

Comment faire pour exécuter l'application du terminal pour toujours?

Je lance le serveur Web Jenkins avec la commande Java -jar jenkins.war. Ça marche très bien. Lorsque je ferme le terminal, l'application s'arrête.

Comment le faire fonctionner même si je ferme la session de terminal?

3
UAdapter

La méthode la plus simple et la plus directe est Nohup Java -jar jenkins.war &. "Nohup" signifie "pas de raccroché", ce qui est une terminologie vintage pour ne pas mettre fin à une session lorsque le terminal se déconnecte. "&" démarre simplement le processus en arrière-plan, comme ce qui se passerait si vous appuyez sur CTRL + Z (puis tapez bg 1) pendant que le processus s'exécute en avant-plan.

AVERTISSEMENT: par défaut, Nohup envoie la sortie du processus à un fichier texte. Si vous ne faites pas attention, ce fichier peut devenir dangereusement volumineux dans certains cas. Traitez-le comme n'importe quel autre fichier journal en croissance constante.

5
Sparr

Installer écran . Dans le terminal, tapez screen puis exécutez votre application. Appuyez sur CTRL+A,CTRL+D pour détacher l’écran et tapez l’écran du terminal -r pour le recoller. Vous pouvez accéder à votre écran via ssh etc ...

apt-get install screen
5
OHLÁLÁ

Utilisez Nohup

Pas de raccroché. Exécuter une commande à l’abri des blocages, exécute la commande donnée avec les signaux de blocage ignorés, afin que la commande puisse continuer à s’exécuter en arrière-plan après votre déconnexion.ManPage

Nohup Command &

Dans votre cas, ce serait

Nohup Java -jar jenkins.war &
2
Mitch

Si vous démarrez fréquemment un service comme Jenkins que vous souhaitez exécuter en arrière-plan et ne pas fermer lorsque vous terminez votre session, vous devez envisager de mettre en œuvre un script init pour celui-ci. Regardez les scripts dans /etc/init.d/ pour des exemples. Ce sont des scripts Shell courts qui vous permettent de faire des choses comme service httpd start et service httpd stop et même service httpd status pour savoir si httpd est en cours d’exécution ou s’il est supposé s’être exécuté, mais ne l’est pas.

Il existe un excellent exemple de script pour le service Hudson, qui fonctionne de manière très similaire à Jenkins (ce sont des forks similaires du même codebase), ici: https://wiki.jenkins-ci.org/display/JENKINS/HudsonUbuntuLinuxStartupScript

1
Sparr

ajouter & après votre commande, je veux dire

Java -jar jenkins.war &
0
rɑːdʒɑ