GNU/Linux >> Belajar Linux >  >> Linux

@reboot tidak berfungsi di CRON

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 di Install 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.


Linux
  1. Cara membuat layanan Systemd di Linux

  2. Menambahkan layanan baru ke sistem Linuxd

  3. Masalah Crontab:Cron Job Tidak Berfungsi Saat Menggunakan Persentase

  1. systemctl:perintah tidak ditemukan

  2. layanan:perintah tidak ditemukan

  3. chkconfig:perintah tidak ditemukan

  1. fflush() tidak berfungsi di Linux

  2. CronJob tidak berjalan

  3. Perintah Linux 'akan' tidak berfungsi