J'ai quelques commandes à exécuter. Ces commandes doivent être exécutées en continu même après avoir quitté mon interface. Lorsque j'ai accès à l'interface graphique Linux, j'exécute quelque chose comme:
cd /home/testuser/Scripts*
xterm -hold -T "Background_Script1" -e "service1-start.sh" &
sleep 10
xterm -hold -T "Background_Script2" -e "service2-start.sh" &
Toute aide sera très appréciée.
linux
command-line
putty
process
gnu-screen
user3331952
la source
la source
set -m;
fait en sorte que mes scripts continuent de s'exécuter après ma déconnexion sur CentOS et RHEL.Réponses:
Essayer
nohup garantit qu'un processus n'est pas terminé lorsqu'un terminal est fermé. Le symbole & pousse le processus en arrière-plan.
J'espère que cela vous a été utile.
la source
nohup
débutent, c'est essentiellement "pas de raccrochage" - avec nohup, leHUP
signal de raccrochage ( ) est ignoré.Si vous souhaitez lire la sortie à une date ultérieure, vous pouvez utiliser
screen
:Cela vous donne un terminal détaché auquel vous pouvez vous connecter plus tard (
screen -r
) pour lire la sortie stdout / stderr.la source
screen -r
), vous aurez également toutes les sorties produites par votre programme et vous auriez sinon "raté". De plus, l'écran peut faire tellement de choses incroyables, comme les écrans divisés, etc.! :)Une autre option si la
nohup
commande n'est pas disponible consiste à utiliser la commande disown .Vous pouvez d'abord afficher vos tâches d'arrière-plan en exécutant
jobs
dans le terminal. Vous pouvez obtenir le numéro de travail à partir de là.Maintenant, exécutez simplement
disown %[job number]
et le processus sera détaché du terminal actuel et restera en vie lorsque vous vous déconnecterez.Note latérale: Assurez-vous que vous posez la bonne question. Si vous exécutez des services réels comme vous l'indiquez dans votre exemple, vous voudrez peut-être voir comment créer un démon dans le système d'exploitation de votre choix. Il s'agit de s'assurer que le processus s'exécute toujours après un redémarrage et de le rendre plus cohérent avec les autres services.
J'espère que cela t'aides.
la source
Depuis
screen
a été mentionné: il existe d'autres multiplexeurs terminaux. J'aimetmux
beaucoup, voir par exemple cette autre question de super-utilisateur, tmux vs écran pour une comparaison.la source
Vous pouvez également essayer:
setsid
Setsid fonctionne également avec les programmes en arrière-plan et leur permet de continuer à fonctionner après la déconnexion de la session terminal / ssh.Utilisez-le comme ceci:
Page de manuel: http://man7.org/linux/man-pages/man2/setsid.2.html
la source