J'ai un script qui s'exécute à partir de rc.local
(un serveur Minecraft dans ce cas) avec lequel j'ai besoin de pouvoir interagir (se connecter ultérieurement à ses STDIN et STDOUT). Comment puis-je faire ceci?
Ce que vous voulez faire, c'est utiliser screen
. Il permet de générer un processus dans sa session et de s'en détacher. Essentiellement, votre question est similaire à this .
Les 3 étapes que vous voulez faire:
La ligne ci-dessous doit aller dans votre /etc/rc.local
. Ajoutez le signe &
à la fin (important!)
screen -S MyMinecraftServer -d -m Java -jar ./SOMEFILES/CLEANUP/minecraft_server.1.8.8.jar nogui
Voici ce que vous feriez en ligne de commande pour trouver votre session:
screen -ls
Exemple de sortie:
There is a screen on:
1720.MyMinecraftServer (2017年01月12日 13时54分36秒) (Detached)
1 Socket in /var/run/screen/S-xieerqi.
Et voici comment vous y attachez:
screen -x 1720.MyMinecraftServer
REMARQUE: le démarrage du serveur minecraft à partir de /etc/rc.local
peut être un trou de sécurité potentiel. Pensez à utiliser su username -c '<screen command here>' &
pour exécuter le serveur en tant qu'utilisateur différent. Voir aussi: https://serverfault.com/a/422952/363611