Voglio che un file .jar venga eseguito ogni volta che il server si avvia (stiamo usando un VPS), quindi ho modificato crontab usando crontab -e
e poi aggiungendo @reboot bash /home/bash/startserver.sh
. Ma non sono nemmeno arrivato al punto in cui la sceneggiatura funziona affatto.
Ecco la mia sceneggiatura:
#!/bin/bash
screen -S bukkit
cd $HOME/server
java -jar bukkit.jar
Il motivo che devo usare screen
è perché quando avvio bukkit.jar, entra in una console in cui posso inserire più comandi per quel programma (sono sicuro che tutti conoscete Minecraft e i suoi server su questo sito, sebbene , haha), ma devo essere in grado di eseguire altri comandi come root e per altri programmi mentre è in esecuzione, e persino chiudere la mia sessione PuTTY.
L'unico problema è che quando viene eseguito questo script, crea una sessione dello schermo, ma il suo ID non è elencato screen -ls
, poiché l'ID è vuoto. Piuttosto, devo andare per /run/screen/S-root
trovare l'ID e quindi utilizzare il tipico screen -X -S $name quit
su di esso.
Forse questo non è nemmeno possibile, o forse c'è davvero un modo più semplice per farlo (mi piacerebbe più semplice), ma non riesco a capire perché questo non funziona. E se questo è possibile, è possibile ricongiungersi a una sessione screen -S bukkit
quando si esegue uno script bash? (Molteplici domande, immagino, ma grazie mille per il vostro aiuto! (Parentesi))