Dan sekarang, jawaban systemd.
Sudah hampir empat tahun sejak pertanyaan dan jawaban ini, dan dunia telah berubah sementara mereka belum. Sejak versi 7, CentOS telah menggunakan systemd. Ubuntu disebutkan dalam pertanyaan dan komentar. Sejak versi 15, Ubuntu telah menggunakan systemd juga.
Meskipun seseorang dapat menggunakan rc
skrip System 5 di bawah systemd, skrip dalam jawaban di sini sangat suboptimal, untuk sedikitnya. Salah satunya menggunakan killall
, yang masalah untuk manajemen demon sudah diketahui dengan baik; dan yang lain adalah kekacauan file kunci reyot dan logika file PID tidak ada yang benar-benar diperlukan di bawah manajer layanan, karena manajer layanan sendiri melacak proses demon.
Seperti yang saya katakan di tempat lain, jika Anda mulai mempelajari hal-hal ini dan menggunakan CentOS Linux versi 7 atau lebih baru atau Ubuntu Linux versi 15 atau lebih baru, jangan mulai dengan rc
skrip System 5 di tempat pertama. Mulailah dengan file unit systemd.
templat untuk beberapa layanan Xvfb
xvfb.service
File unit systemd sederhana untuk xvfb dapat ditemukan di https://www.centos.org/forums/viewtopic.php?f=48&t=49080#p208363 dan di /ubuntu//a/621256/43344 . Namun, seperti yang saya sebutkan di bagian terakhir, orang juga dapat mengambil pendekatan templatized:
[Satuan]
Deskripsi = virtual frame buffer X server untuk tampilan% I
Setelah = network.target
[Layanan]
ExecStart = / usr / bin / Xvfb% I -screen 0 1280x1024x24
[Install]
WantedBy = multi-user.target
Sebagai file unit yang ditulis secara lokal, non-sistem, tidak dikemas untuk layanan seluruh sistem (bukan per-pengguna), hal ini /etc/systemd/system/xvfb@.service
tentu saja berlaku.
mengendalikan layanan
Satu instantiates template, ke dalam layanan bernama sebenarnya, dengan nomor tampilan yang diinginkan. Untuk tampilan :99
, oleh karena itu, ada instance layanan aktual bernama xvfb@:99.service
.
- Atur layanan untuk memulai otomatis saat bootstrap dengan
systemctl enable xvfb@:99.service
.
- Hapus setel memulai layanan secara otomatis
systemctl disable xvfb@:99.service
.
- Mulai layanan secara manual dengan
systemctl start xvfb@:99.service
.
- Hentikan layanan secara manual dengan
systemctl stop xvfb@:99.service
.
- Periksa status layanan saat ini secara terperinci dengan
systemctl status xvfb@:99.service
.
Bacaan lebih lanjut