Saya telah menjadi pengguna Ubuntu untuk sementara waktu, dan di tempat kerja kami memiliki banyak server Ubuntu VM , yang semuanya berjalan Ubuntu 14.04 LTS
untuk menyebarkan aplikasi web kami, database, dan alat-alat lainnya.
Saya sedang belajar Ubuntu 16.04 LTS
, desktop dan server, untuk dapat meningkatkan server produksi kami dalam waktu dekat tanpa menimbulkan masalah.
Sejak Ubuntu 15.04, init
dan upstart
telah digantikan oleh Systemd
, jadi saya juga belajar Systemd.
Saya perhatikan bahwa komputer pengembangan saya yang menjalankan Ubuntu 16.04 Desktop Edition telah graphical.target
sebagai target systemd default, yang logis.
Tapi kemudian saya perhatikan bahwa server pengujian yang menjalankan Ubuntu 16.04 Server edisi juga menggunakan graphical.target
sebagai target systemd default.
$ systemctl get-default
graphical.target
Jadi saya bingung. Server tidak memiliki lapisan grafis, jadi bagaimana target defaultnya graphical.target
?
Edit # 0
Seperti yang disarankan Rinzwind di komentar, saya melihat target untuk melihat apakah itu aktif atau tidak ...
dan jawabannya adalah YA:
admin@server1604:~$ systemctl get-default
graphical.target
admin@server1604:~$ systemctl status graphical.target
● graphical.target - Graphical Interface
Loaded: loaded (/lib/systemd/system/graphical.target; static; vendor preset: enabled)
Active: active since jeu. 2016-10-13 16:03:18 CEST; 46min ago
Docs: man:systemd.special(7)
oct. 13 16:03:18 fdea systemd[1]: Reached target Graphical Interface.
Jadi saya sedikit lebih bingung.
Edit # 1
Jawaban Mark Stosberg menunjukkan fakta bahwa itu display-manager.service
adalah bagian dari pohon dependensi graphical.target
pada server 16,04 sendiri, dan dia menambahkan bahwa tidak ada manajer tampilan yang diinstal atau dijalankan pada mesinnya. Saya melihat itu juga, dan memang, di server saya ketergantungan ini ada:
admin@server1604:~$ systemctl list-dependencies graphical.target
graphical.target
● ├─accounts-daemon.service
● ├─apache2.service
● ├─apport.service
● ├─display-manager.service
...
Dan target ini memiliki lingkaran merah di sebelah kiri, di mana sebagian besar dependensi lainnya berwarna hijau.
Dan kali ini hasilnya konsisten:
[email protected]:~$ systemctl status display-manager.service
● display-manager.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
Tapi di sini ada hal aneh lainnya: pada edisi desktop saya, display-manager.service
ini bukan ketergantungan graphical.target
:
[email protected]:~ $ systemctl list-dependencies graphical.target | grep display
[email protected]:~ $
Tetapi saya bahkan menemukan alternatif karena saya menjalankan Ubuntu-Gnome
dengan lightdm
mengganti window manager default:
[email protected]:~ $ systemctl list-dependencies graphical.target | grep lightdm
● ├─lightdm.service
graphical.target
aktif?Jawaban:
Terlepas dari nama targetnya, tidak ada grafis yang berjalan di Ubuntu Server 16.04. Anda dapat perintah ini untuk memeriksa dan membandingkannya dengan desktop Anda jika Anda suka:
Pada server Ubuntu 16.04 saya, saya melihat bahwa target tergantung pada "display-manager.service", tetapi tidak ada manajer tampilan yang diinstal atau dijalankan.
Saya berharap server Ubuntu diatur dengan cara ini untuk semacam konsistensi, meskipun saya setuju itu membingungkan.
sumber
Dari manual redhat :
Jadi tidak salah untuk mengaturnya karena tidak mengaktifkan manajer tampilan ketika layanan yang menangani layanan tampilan tidak diatur.
Untuk server Anda dapat mengaturnya
multi-user.target
tetapi tidak diperlukan. Sepertinya Anda berakhir di runlevel 4 jika Anda melakukannya dan runlevel 5 ketika Anda tidak.sumber
Memeriksa lebih detail tingkat pertama ketergantungan pohon target
graphical.target
:sebuah membandingkannya dengan tingkat pertama dari
multi-user.target
:Saya melihat bahwa jika kita menghapus target cacat di
graphical.target
pohon (display-manager.service
,systemd-update-utmp-runlevel.service
,ureadahead.service
), hampir semua yang tersisa:apache2.service
apport.service
grub-common.service
grub-common.service
irqbalance.service
mdadm.service
ondemand.service
sysstat.service
sudah termasuk dalam tingkat pertama pohon dependensi
multi-user.target
.Meskipun, kita harus bertanya lagi tentang fakta ini, karena
graphical.target
tergantung darimulti-user.target
, tidak perlu semua hal ini. Kedengarannya cukup aneh.Tapi setelah pengurangan ini, tetap satu layanan
accounts-daemon.service
, seperti, Rinzwind tunjukkan dalam komentarnya .Jadi kita dapat mengasumsikan bahwa
graphical.target
diperlukan untuk memuataccounts-daemon.service
.Namun, dalam hal itu lagi aneh, karena saya pikir akan lebih masuk akal untuk membuat target khusus untuk tujuan itu, mungkin sesuatu seperti
accounts.target
atau istilah yang tepat untuk menggambarkannya. Bagaimanapun, mungkin pengembang Canonical memiliki alasan untuk membuat mereka berpikir seperti itu.Tapi saya tetap penasaran ingin tahu alasannya.
sumber