Pokazywanie postów oznaczonych etykietą systemd. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą systemd. Pokaż wszystkie posty

wtorek, 13 listopada 2012

Systemd i journal - polecenia

Archlinux przeszedł na nowy menedżer uruchamiania systemd, o czym pisałem poprzednio. W związku z tym zmienia się również domyślny sposób zarządzania usługami, jak i mechanizm logowania zdarzeń systemowych. Poniżej lista przydatnych poleceń.

Systemctl

  • $ systemctl start/stop/retsart vftpd.service - uruchomienie/zatrzymanie/restart usługi
  • $ systemctl enable/disable vftpd.service - włączenie/wyłączenie uruchamiania usługi podczas startu systemu
  • $ systemctl enable/disable sshd.socket - włączenie/wyłączenie uruchamiania usługi na żądanie
  • $ systemctl list-units --type=target - pokaż "usługi" typu target
  • $ systemctl isolate multi-user.target - uruchom podany "stan", zatrzymując inne; odpowiednik zmieniania poziomów (runlevel)
Szczegóły w manualu i na stronie projektu.

Journalctl

  • $ journalctl --b - log z bieżącego uruchomienia systemu
  • $ journalctl -n100 - pokaż ostatnie 100 wpisów
  • $ journalctl -u NetworkManager - pokaż logi dotyczące podanej "usługi"
Szczegóły w manualu i na stronie projektu.

Problemy z uruchomieniem

Po uruchomieniu się Gruba wciskamy "e" i w linii rozpoczynającej się od "linux" dodajemy jako parametr startowy jądra: systemd.unit=recovery.target lub w ostateczności: systemd.unit=emergency.target.

wtorek, 6 listopada 2012

Czysty systemd

Od 4.11.2012 domyślnym mechanizmem uruchamiania Archa jest systemd, a to oznacza, że podczas aktualizacji pakietów, np. w Bridge'u, należy pamiętać o kilku rzeczach. Przypomnijmy.

1) Ustawienia systemowe w plikach:
  • /etc/locale.conf
  • /etc/locale.gen
  • /etc/hostname
  • /etc/hosts
  • /etc/adjtime
  • /etc/vconsole.conf
  • /etc/environment
2) Usunięcie wsparcia dla initscripts, instalacja pakietu kompatybilności, usunięcie poprzedniego pliku konfiguracji systemu, pełna aktualizacja systemu:
  • pacman -R sysvinit initscripts
  • pacman -S systemd-sysvcompat
  • rm /etc/rc.conf
  • pacman -Syu
3) Ustawienie domyślnego poziomu (targetu) uruchamiania oraz domyślnie uruchamianych usług, np.:
  • systemctl enable graphical.target
  • systemctl enable lxdm.service
  • systemctl enable NetworkManager.service
4) Zmiana sposobu uruchamiania środowiska graficznego, np. XFCE w Bridge'u, co wymaga nowej zawartości pliku ~/.xinitrc:

#!/bin/sh

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

exec startxfce4

Po wykonaniu tych czynności wykonujemy restart, a system powinien wykorzystać już czysty systemd.

niedziela, 2 września 2012

Bridge Linux i Systemd

W poprzednim poście nt. instalacji najnowszego Bridge'a poruszyłem temat migracji na nowy mechanizm startowy systemd. Wypada rozszerzyć i uporządkować uwagi dotyczące wdrażania tego rozwiązania.

Pliki konfiguracyjne

Pierwszym, nieodzownym warunkiem przejścia na systemd jest zastąpienie dotychczasowego pliku konfiguracyjnego Archa, tj. rc.conf, plikami charakterystycznymi dla nowego systemu, co opisałem wcześniej:

  • /etc/hostname
  • /etc/vconsole.conf
  • /etc/locale.conf
  • /etc/timezone
  • /etc/adjtime
  • /etc/environment

Obsługa modułów ładowanych podczas uruchamiania systemu realizowana jest przez pliki z katalogu /etc/modules-load.d/ [więcej], moduły blokowane konfigurujemy w katalogu /etc/modprobe.d/ [więcej].

Próbne użycie systemd

Pierwsze użycie systemd wiąże się z czynnościami opisanymi w poprzednim poście:
  • w /etc/environment wstawiamy: LANG=pl_PL.utf8
  • w /etc/default/grub dopisujemy: GRUB_CMDLINE_LINUX_DEAFAULT="quiet init=/bin/systemd"
  • sudo grub-mkconfig -o /boot/grub/grub.cfg - aktualizujemy Gruba
  • sudo systemctl enable graphical.target - ustawiamy domyślny target (runlevel, poziom) uruchamiania
  • sudo systemctl enable lxdm.service - uruchamiamy podczas startu systemu menedżer logowania
Restart i... wszystko powinno działać.

Tylko systemd

Jeżeli po restarcie wszystko (lub prawie) działa, należy spróbować całkowitego zastąpienia dotychczasowych skryptów startowych nowym mechanizmem:
  • sudo pacman -R sysvinit initscripts - usuwamy stare skrypty startowe
  • sudo pacman -S systemd-sysvcompat - instalujemy pakiet kompatybilności systemd z sysvinit
  • sudo systemclt enable NetworkManager.service - jeżeli wykorzystujemy NetworkManagera do zarządzania połączeniami sieciowymi uruchamiamy go podczas startu systemu
Restart i... wszystko powinno działać.
Jeżeli wszystko (lub prawie) działa, z domyślnej konfiguracji Gruba można usunąć parametr "init=/bin/systemd", pamiętając o zaktualizowaniu potem pliku koniguracyjnego.

Journal zamiast syslog-ng

Systemd zawiera własną usługę logowania, journal. Syslog-ng można odinstalować lub skonfigurować do używania razem z journalem. Domyślnie logi journala są tracone po restarcie, aby tak nie było należy utworzyć klatalog: sudo mkdir /var/log/journal. Rozmiar logu ustawiamy w pliku /etc/ssytemd/journald.conf, np. na 20 MB:
SystemMaxUse=20M
Użyteczne polecenia:
  • journalctl - wyświetlenie logów
  • journalctl _SYSTEMD_UNIT=alsa.service - przykładowe filtrowanie logów

sobota, 1 września 2012

Bridge Linux 2012.8 i systemd

Jak zainteresowanym wiadomo, dostępna jest następna kompilacja Bridge Linux, oznaczona 2012.8. Instalacja przebiega tak samo, jak w wersji 2012.5, ale domyślnie instalowany jest GRUB2. W moim przypadku po restarcie okazało się, że bootmenedżer poprawnie się nie zainstalował. Musiałem więc jeszcze raz uruchomić komputer z wypalonej instalki Bridge'a i wklepać trochę kodu:

sudo mount /dev/sda2 /mnt -o rw
cd /mnt
sudo mount -t proc proc proc/
sudo mount -t sysfs sys sys/
sudo mount -o bind /dev dev/
sudo mount -t devpts pts dev/pts/
chroot . /bin/bash
- po tych operacjach można zainstalować GRUBA2 tak jak potrzeba, np.:
grub-install --target=i386-pc --recheck --force /dev/sda[2]
grub-mkconfig -o /boot/grub/grub.cfg
exit
- powyższe polecenia instalują GRUBa na dysku /dev/sda albo w MBR (/dev/sda), albo na wybranej partycji (/dev/sda2). Po restarcie wszystko powinno działać.

Po udanej instalacji, jak zwykle uruchomi się skrypt konfiguracyjny, który ustawia m.in. repozytoria i uruchamia procedurę aktualizacji. Tym razem przebiega ona bez większych problemów, ale jak się okazuje Bridge nadal używa "starego" pliku konfiguracyjnego /etc/rc.conf. Ponieważ ArchLinux stopniowo rezygnuje ze skryptów startowych sysvinit na rzecz systemd, należy je jednak utworzyć. W poście Bridge Linux 2012.5 - konfiguracja opisałem, które pliki są potrzebne. Po ich utworzeniu plik /etc/rc.conf można ograniczyć do wpisu:
DAEMONS=(dbus networkmanager syslog-ng @alsa)
- czyli określenia usług uruchamianych podczas startu systemu.

Systemd

Przejście Archa na mechanizm startowy systemd niesie ze sobą przede wszytskim przyśpieszenie uruchamiania i wyłączania systemu (w moim przypadku system uruchamia się w trybie GUI 10 sekund). Jednak żeby tak się stało, trzeba skonfigurować kilka rzeczy. Na początek w pliku /etc/environment dopisujemy:
LANG=pl_PL.utf8
- następnie w pliku /etc/default/grub jedną linię uzupełniamy:
GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/bin/systemd"

Trzeba jeszcze zaktualizować plik konfiguracyjny GRUBa, czyli: sudo grub-mkconfig -o /boot/grub/grub.cfg.
Teraz można skonfigurować domyślny poziom (ang. target) uruchamiania się systemu i start graficznego menedżera logowania:
systemctl enable graphical.target
systemctl enable lxdm.service

Pozostaje restart i... obserwowanie szybszego startu systemu... Na koniec warto dodać, że powyższe zmiany nie porzucają jeszcze całkowicie mechanizmu sysvinit i jego skryptów konfiguracyjnych. Jak całkowicie przejść na systemd, napiszę niedługo.

Aktualizacja: Czysty systemd w Bridge Linux 2012.8.