Saya hosting beberapa server game Counter-Strike di server khusus saya menggunakan layar. Saya memiliki skrip ini yang saya jalankan ketika saya ingin memulai / menghentikan server:
#! /bin/sh
# /etc/init.d/css-server
#
case "$1" in
start)
echo "Starting Nullus Imprimis war server..."
screen -A -m -d -S css-war-server /home/css-servers/war-server/css/srcds_run -game cstrike +map de_dust2 +maxplayers 16 -autoupdate -port 2555 -tick 100
echo "Nullus Imprimis war server started"
echo "Starting Nullus Imprimis pub server #1..."
screen -A -m -d -S css-pub-server-1 /home/css-servers/pub-server-1/css/srcds_run -game cstrike +map de_dust2 +maxplayers 32 -autoupdate -port 2666 -tickrate 100
echo "Nullus Imprimis pub server #1 started"
;;
stop)
echo "Stopping Nullus Imprimis war server..."
screen -S css-war-server -X quit
echo "Nullus Imprimis war server stopped"
echo "Stopping Nullus Imprimis pub server #1..."
screen -S css-pub-server-1 -X quit
echo "Nullus Imprimis pub server #1 stopped"
;;
*)
echo "Usage: /etc/init.d/css-servers {start|stop}"
exit 1
;;
esac
exit 0
Saya memasukkan skrip ini (dipanggil css-servers
) /etc/init.d/
dan sepengetahuan saya itu berarti skrip itu dijalankan ketika sistem dinyalakan. Namun ketika saya memeriksa layar aktif menggunakan screen -ls
tidak ada yang berjalan.
Bagaimana saya bisa menjalankan ini pada startup di Ubuntu Server?
update-rc.d
perintah ini . Saya memperbarui skrip saya kemudian tidak berjalan lagi sampai saya menjalankan perintah ini. Terima kasih. Ngomong-ngomong, bagaimana kita bisa "membatalkan pendaftaran" dari menjalankannya pada saat startup (seperti yang kita lakukan dengan update-rc.d)?Anda telah menyelesaikan bagian pertama.
/etc/init.d
adalah tempat skrip inisialisasi dijalankan. Namun, mereka tidak berjalan secara otomatis.Mereka dijalankan secara berurutan sebagaimana ditentukan oleh tautan simbolik
/etc/rc*.d
direktori. Setiap level run memiliki direktori sendiri. Skrip dengan nama tautan dimulai denganK
dijalankan dengan penghenti pararmeter, dan skrip dengan nama dimulai denganS
dijalankan dengan parameter awal. Dengan konvensi, nama file dimulai denganK
atauS
diikuti oleh nomor dua digit yang digunakan untuk mengurutkan, dan diakhiri dengan nama skrip/etc/init.d
.Tautan dapat dibuat secara manual, tetapi umumnya dibuat dengan skrip. Skrip generik
update-rc.d
tersedia di Ubuntu. Perintah ituman update-rc.d
akan memberi Anda dokumentasi tentang siapa yang akan menggunakannya. Dalam kasus Anda, coba:Untuk memulainya menggunakan skrip init coba:
Saya biasanya memulai dan menghentikan server dengan cara ini untuk memastikan skrip berfungsi seperti yang diinginkan. Lalu saya jalankan
update-rc.d
untuk menambahkannya ke/etc/rc.d
direktori runlevel.sumber
Jika Anda tidak mendapatkan petunjuk mengapa layanan Anda tidak memulai saat boot. Namun, itu berfungsi dengan baik ketika Anda mencoba untuk memulai layanan secara manual
service <your service> start
. Dalam hal ini, cobalah mengarahkan ulang output standar dan output kesalahan ke beberapa file. Yang mungkin memberi Anda beberapa petunjuk mengapa tidak memulai saat mem-boot sistem.misalnya di dalam skrip Anda
sumber