Lihatlah halaman manual systemd.service. Ini menjelaskan cara mengkonfigurasi systemd untuk mengelola layanan. Saya yakin Anda akan menemukan contoh untuk sistem Anda di /usr/lib/systemd/system
atau jalur serupa.
Dalam kasus Anda, layanan akan terlihat seperti ini:
[Unit]
Description=Unturned Game Server
[Install]
WantedBy=multi-user.target
[Service]
ExecStart=/bin/bash /home/steam/start.sh
Type=simple
User=steam
Group=steam
WorkingDirectory=/home/steam
Restart=on-failure
Masukkan ini ke dalam file /etc/systemd/system/unturned.service
. Kemudian jalankan systemctl daemon-reload
(sekali, dan setiap kali Anda mengubah unturned.service
untuk memberi tahu systemd untuk membaca ulang konfigurasi) dan systemctl start unturned.service
untuk memulai server game.
Jika berhasil seperti yang diharapkan, Anda dapat menggunakan systemctl enable unturned.service
untuk memastikannya dimulai saat boot.
Beberapa catatan tentang opsi yang digunakan:
- Jika start.sh tidak seharusnya dijalankan sebagai pengguna/grup
steam
, edit dengan tepat. WantedBy
diInstall
bagian memberi tahu systemd "target" mana (lihat man systemd.target) menarik layanan saat Anda mengaktifkannya menggunakan systemctl enable.Restart
menentukan dalam keadaan apa systemd akan secara otomatis memulai kembali layanan. Ada lebih banyak opsi terkait restart, yang mungkin ingin atau tidak ingin Anda ubah; lihat halaman manual systemd.service.
Coba man 5 crontab
. Jika crontab Anda didukung, Anda akan melihat @reboot, @yearly, @monthly,.,,,
lalu coba tambahkan tidur sebentar mungkin bisa membantu.
@reboot sleep 60;/root/s3-mount.sh
Periksa critical-chain untuk crond.service, seperti yang ditanyakan dan dijawab di postingan StackExchange ini
Baca juga artikel FreeDesktop yang membahas masalah ini.
Secara umum, systemd dikonfigurasi untuk memiliki dependensi yang sangat terbatas, memulai banyak daemon secara paralel untuk mengurangi waktu booting. Layanan yang belum tentu bergantung pada jaringan yang sepenuhnya aktif dan berfungsi akan gagal jika ada komponen yang menganggap jaringan dalam keadaan stabil. Kegagalan seperti ini mungkin sulit untuk didiagnosis, tetapi menggunakan systemd-analyze critical-chain
dan journalctl -xel
keluaran dapat mengarahkan Anda ke akar penyebab masalah Anda.