Je veux qu'un fichier .jar s'exécute à chaque démarrage du serveur (nous utilisons un VPS), et j'ai donc édité crontab en utilisant crontab -e
puis en ajoutant @reboot bash /home/bash/startserver.sh
. Mais je ne suis même pas arrivé au point où le script fonctionne du tout.
Voici mon script:
#!/bin/bash
screen -S bukkit
cd $HOME/server
java -jar bukkit.jar
La raison pour laquelle je dois l'utiliser screen
est que lorsque je démarre bukkit.jar, il va dans une console où je peux entrer plus de commandes pour ce programme (je suis sûr que vous connaissez tous Minecraft et ses serveurs sur ce site, cependant , haha), mais je dois pouvoir exécuter d'autres commandes en tant que root et pour d'autres programmes pendant son exécution, et même fermer ma session PuTTY.
Le seul problème est que lorsque ce script est exécuté, il crée une session d'écran, mais son ID n'est pas répertorié screen -ls
, car l'ID est vide. Au lieu de cela, je dois aller /run/screen/S-root
chercher l'ID et ensuite utiliser le typique screen -X -S $name quit
dessus.
Peut-être que ce n'est même pas possible, ou peut-être qu'il existe en fait un moyen plus simple de le faire (j'adorerais plus simple), mais je ne peux pas comprendre pourquoi cela ne fonctionne pas. Et si cela est possible, est-il possible de rejoindre une session avec screen -S bukkit
lors de l'exécution d'un script bash? (Plusieurs questions, je suppose, mais merci beaucoup pour votre aide! (Parenthèses))
bukkit.sh
script sur la ligne de commande. Ensuite, vérifiez que celascreen -S bukkit path/to/bukkit.sh
fonctionne. Ensuite, vérifiez que celascreen -d -m -S bukkit path/to/bukkit.sh
fonctionne. Enfin, configurez cron. Essayez d'abord la chose la plus simple et faites de petites étapes pour comprendre quelle étape se casse. Dites-le-moi et le message d'erreur que vous obtenez si vous avez besoin d'aide.Vous devez
update-rc.d
comme suit pour activer le service au démarrage:la source