Saya ingin file .jar dijalankan setiap kali server melakukan boot (kami menggunakan VPS), jadi saya telah mengedit crontab menggunakan crontab -e
dan kemudian menambahkan @reboot bash /home/bash/startserver.sh
. Tetapi saya bahkan belum sampai pada titik di mana script bekerja sama sekali.
Ini skrip saya:
#!/bin/bash
screen -S bukkit
cd $HOME/server
java -jar bukkit.jar
Alasan yang perlu saya gunakan screen
adalah karena ketika saya memulai bukkit.jar, ia masuk ke konsol tempat saya dapat memasukkan lebih banyak perintah untuk program itu (saya yakin Anda semua akrab dengan Minecraft dan servernya di situs ini, meskipun , haha), tetapi saya harus dapat melakukan perintah lain sebagai root dan untuk program lain ketika sedang berjalan, dan bahkan menutup sesi Putty saya.
Satu-satunya masalah adalah ketika skrip ini dijalankan, ia membuat sesi layar, tetapi ID- nya tidak terdaftar screen -ls
, karena ID-nya kosong. Sebaliknya, saya harus pergi /run/screen/S-root
untuk mencari ID dan kemudian menggunakan yang khas screen -X -S $name quit
di atasnya.
Mungkin ini bahkan tidak mungkin, atau mungkin sebenarnya ada cara yang lebih sederhana untuk melakukan ini (saya akan suka lebih sederhana), tetapi saya tidak tahu mengapa ini tidak berhasil. Dan jika ini mungkin, apakah mungkin untuk bergabung kembali dengan sesi screen -S bukkit
ketika menjalankan skrip bash? (Beberapa pertanyaan, saya kira, tetapi terima kasih banyak atas bantuan Anda! (Kurung))
bukkit.sh
skrip bekerja pada baris perintah. Selanjutnya, periksa apakah ituscreen -S bukkit path/to/bukkit.sh
berfungsi. Selanjutnya, periksa apakah ituscreen -d -m -S bukkit path/to/bukkit.sh
berfungsi. Akhirnya, atur cron. Cobalah hal yang paling sederhana terlebih dahulu, dan ambil langkah-langkah kecil sehingga Anda mengerti langkah mana yang akan rusak. Katakan itu, dan pesan kesalahan yang Anda dapatkan jika Anda butuh bantuan.Anda harus
update-rc.d
sebagai berikut untuk mengaktifkan layanan saat boot:sumber