Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#126  2015-10-17 23:55:22

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Nom potrzebny. Wtedy zrzuca zawartość RAM do swap i usypia. Jak potem braknie zasilania czy coś, to wczytuje ze swap, a tak to normalnie wybudza.

W każdym razie namierzyłem problem. Działa i suspend i hybrid-sleep , tylko coś ten mechanizm nie chce działać ze ZRAM. W sumie mam podmontowany tmp i kawałek swap w ZRAM. I jeśli dane się nie znajdują w ZRAM, to wszystko działa w porządku, z kolei jeśli xxx MiB jest w ZRAM, wtedy ten mechanizm przestaje działać.

Jeszcze coś sprawdzę i im napiszę info o tym, zobaczymy co oni powiedzą.

Ostatnio edytowany przez morfik (2015-10-17 23:55:43)

Offline

 

#127  2015-11-22 20:53:06

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Jako, że umknęła jedna ważna rzecz, to wypadałoby o niej coś napisać. Dziś aktualizowałem sobie wheezy na unstable (nie mam pojęcia skąd mi się coś takiego starego wzięło) i podczas instalacji został wyrzucony komunikat o udev'ie. Chodziło tam o takie coś:

Debian releases up to 8 ("Jessie") and Ubuntu up to 15.04 had an udev rule
/lib/udev/rules.d/75-persistent-net-generator.rules which fixed the name of a
network interface that it got when its MAC address first appeared in a
dynamically created /etc/udev/rules.d/70-persistent-net.rules file.

This had inherent race conditions (which sometimes caused collisions and
interface names like "rename1"), required having to write state into /etc
(which isn't possible for read-only root), and did not work in virtualized
environments.

This old schema is deprecated in Debian 9 ("Stretch"), and will not
be supported any more in Debian 10.

-- /usr/share/doc/udev/README.Debian.gz

Jak można wyczytać w tym pliku, za dwa wydania ten obecny system nazewnictwa nie będzie wspierany przez debiana. Systemd już go nie wspiera zatem lepiej zacząć migrować na nowy system nazw. Choć mnie te domyślne nazwy trochę przerażają: wlp3s0b1 czy enp2s0. xD Ja właśnie sobie zmigrowałem i na dobrą sprawę to niewiele musiałem zmieniać, bo wszystkie aplikacje korzystają z interfejsu bond0 i tylko wystarczyło port przepisać by te wszystkie fizyczne interfejsy do tego bond0 podpiąć. Zaleta korzystania z interfejsów bond. xD

Offline

 

#128  2015-11-22 21:05:11

  Hepita - Użytkownik

Hepita
Użytkownik
Skąd: 127.0.0.1
Zarejestrowany: 2014-10-30

Re: systemd

@morfik dziś postawiłem jessie, poleciał od razu update do testinga i potem do sida. Na sidzie nagle telefon podpięty jako modem przez USB zmienił nazwę z usb0 na enx[cośtam cośtam]. Też mnie to trochę przeraża, ktoś tu lubi sobie życie utrudniać xD
Na wiki Archa znalazłem coś o zmianie nazw interfejsów, testowałem i w sumie działało, nie zalecają tylko nazywania interfejsów "eth0", "wlan1" itp tylko np "net0", "wifi1" żeby z czymś tam nie kolidowało, nie pamiętam z czym. Jak znajdę to dam linka.

Okazało się że mam to w zakładkach xD prosta regułka udeva https://wiki.archlinux.org/index.php/Network_config … e_device_name

Ostatnio edytowany przez Hepita (2015-11-22 21:06:32)


Arch Linux + KDE Plasma 5.12@Core i5 4460 + GTX 750 Ti + 4 GB RAM

Offline

 

#129  2015-11-22 22:54:00

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: systemd

Hepita napisał(-a):

Okazało się że mam to w zakładkach xD prosta regułka udeva https://wiki.archlinux.org/index.php/Network_config … e_device_name

A ja w kompie:

Kod:

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:24:1d:c4:82:87", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="lan"

# PCI device 10ec:8169 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e8:94:f6:02:eb:d7", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="net"

:D


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#130  2015-11-22 23:06:58

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Systemd ma tez swój własny mechanizm do przepisywania nazw. Przykład:

Kod:

[Match]
MACAddress=
OriginalName=
Path=
Driver=
Type=

[Link]
Name=siec-domowa

Oczywiście dopasowanie może być robione po jednym z tych powyższych lub po wielu. Wyżej wymieniłem wszystko co jest. xD

Te urządzenia usb to jest jakaś masakra: wlxe894f61e15e9 xD

Ostatnio edytowany przez morfik (2015-11-22 23:18:25)

Offline

 

#131  2015-12-08 18:23:49

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Udało mi się zaprogramować mój system, by był w stanie ograniczać aplikacje użytkowników via cgroups. Choć teraz mam dwa mechanizmy i one działają w sumie równolegle. Jeden jest od systemd i można kontrolować usługi via pliki .service. Drugi zaś jest za sprawą pakietu cgroup-tools .

Jeśli ktoś chciałby się tym pobawić, to potrzebuje doinstalować pakiet cgroup-tools oraz stworzyć sobie dwie usługi:

/etc/systemd/system/cgrulesengd.service

Kod:

[Unit]
Description=Control Group configuration service
Documentation=man:cgconfigparser man:cgclear
ConditionDirectoryNotEmpty=/sys/fs/cgroup/
ConditionPathIsReadWrite=/etc/cgconfig.conf
DefaultDependencies=no
Before=basic.target shutdown.target
After=local-fs.target
Conflicts=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -s 1664
ExecStop=/usr/sbin/cgclear -l /etc/cgconfig.conf -e

[Install]
WantedBy=sysinit.target

/etc/systemd/system/cgconfig.service

Kod:

[Unit]
Description=CGroup Rules Engine
Documentation=man:cgrulesengd
ConditionPathIsReadWrite=/etc/cgrules.conf
DefaultDependencies=no
Requires=cgconfig.service
Before=basic.target shutdown.target
After=local-fs.target cgconfig.service
Conflicts=shutdown.target

[Service]
Type=simple
ExecStart=/usr/sbin/cgrulesengd -n -Q

[Install]
WantedBy=sysinit.target

Do tego są potrzebne dwa pliki konfiguracyjne:

/etc/cgconfig.conf z blokami podobnymi do tego:

Kod:

group users/firefox {
    perm {
        task {
            uid = root;
            gid = root;
        }
        admin {
            uid = root;
            gid = root;
        }
    }
    cpu {
        cpu.shares = "512";
    }
    memory {
        memory.limit_in_bytes = 300M;
    }
}

/etc/cgrules.conf z linijkami typu:

Kod:

*:firefox            cpu,memory,net_cls    users/firefox/
*:firefox*            cpu,memory,net_cls    users/firefox/

I to w zasadzie wszystko. Poniżej test:

Kod:

# cat /sys/fs/cgroup/memory/users/firefox/tasks | wc -l
41

# cat /sys/fs/cgroup/memory/users/firefox/memory.limit_in_bytes
314572800

# cat /sys/fs/cgroup/memory/users/firefox/memory.usage_in_bytes
314462208

# cat /sys/fs/cgroup/cpu/users/firefox/cpu.shares
512

oraz

Kod:

# cat  /proc/`pidof firefox`/cgroup
9:memory:/users/firefox
8:perf_event:/
7:net_cls,net_prio:/
6:cpuset:/
5:freezer:/
4:blkio:/user.slice/user-1000.slice/session-1.scope
3:cpu,cpuacct:/users/firefox
2:devices:/user.slice
1:name=systemd:/user.slice/user-1000.slice/session-1.scope

Wyszło dużo prościej niż w przypadku tych skryptów sysvinit. xD

Ważne tylko by to systemd montował /sys/fs/cgroup i nie określać bloku mount { }  w /etc/cgconfig.conf , bo wtedy będą problemy z montowaniem. Tak poza tym, zdaje się to działać wedle oczekiwań. Choć jeszcze muszę porobić trochę testów i dostosować konfigurację ale myślę, że nie będzie jakichś większych niespodzianek. xD

Ostatnio edytowany przez morfik (2015-12-08 22:03:06)

Offline

 

#132  2015-12-08 18:31:20

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: systemd

Do Cgroup potrzebujesz Systemd?

Kod:

cgs firefox
**************************************************************
###  Program:  /opt/nightly/firefox   ###  user: pacjent  ###
................................................................
13:debug:/
12:hugetlb:/
11:net_prio:/
10:perf_event:/
9:net_cls:/users/firefox
8:freezer:/
7:devices:/
6:memory:/users/firefox
5:blkio:/users/firefox
4:cpuacct:/
3:cpu:/users/firefox
2:cpuset:/
1:name=openrc:/
................................................................

Apparmor: /opt/nightly/firefox (enforce) 
................................................................

PaX:    PemRs
................................................................

RAM: 403.6 MiB +  88.7 MiB = 492.3 MiB    firefox

SOA#1
Jeden skrypcio ustawia grupy, cgrulesengd wrzuca programy do odpowiednich grupo, i gotowe.

Pozdro


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#133  2015-12-08 19:21:47

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Ja generalnie to zasoby ograniczam sobie przez systemd, przynajmniej systemowych usług. xD Przykład:

Kod:

Nice=
IOSchedulingClass=
IOSchedulingPriority=
CPUShares=
StartupCPUShares=
TasksMax=
MemoryLimit=
BlockIOWeight=
OOMScoreAdjust=

I tam jest tego jeszcze trochę więcej ale ja głównie korzystam z tych wyżej. Sam widzisz, że nadanie odpowiedniego priorytetu procesowi czy ograniczenie mu zasobów w systemd nie jest niczym skomplikowanym. xD

Tu problem był taki, że to działa świetnie z systemowymi usługami czy demonami ale w dużej mierze nie działa wcale w przypadku usług i procesów zwykłych użytkowników, zwłaszcza ten cgroups. To powyższe co dałem wyeliminowało ten problem i teraz cgroups w systemd jest w stanie również obrabiać procesy użytkowników. xD

Teraz to u mnie działa mniej więcej tak jak u ciebie. Z tym, że w oparciu o systemd i nie wywala tego całego mechanizmu, który jest dostępny w systemd. Dalej będę wszystkie systemowe usługi ograniczał przez systemd, bo to o wiele wygodniejsze. Natomiast pozostałe będą lecieć przez cgrulesengd

Offline

 

#134  2015-12-08 20:56:28

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: systemd

W zasadzie tak, należy jednak pamiętać, że ograniczanie w Systemd mają tą samą wadę, co ograniczanie w OpenRC.
Na serwer niezłe, ale jak w sesji użyszkodnika chodzi np 45 programów, które muszą mieć różne limity, to SystemD/OpenRC nic nie poradzi, i tak trzeba rzeźbić w konfigach cgconfig, co jest 5 razy trudniejsze, niż rzeźbienie w skrypta, który takie grupy stworzy używając trzech poleceń powłoki: mkdir, echo, chmod.

Ja dlatego wolę skrypta, ze ma mniejsze wymagania dotyczące bibliotek systemowych i jest odporniejszy na aktualizacje, widziałem już cgconfig, który własnego konfigu przeczytać nie umiał.

Przy okazji, ani SystemD ani OpenRC nie potrafią tak ściśle pilnować działania demona tak, jak to robi Daemontools.
Dlatego wygoniłem do niego kilka demonów:

Kod:

supervise php56
supervise nginx
supervise opendkim
supervise mysqld
supervise dovecot
supervise named
supervise radiusd
supervise sshd

Muszę przyznać, ze działa to elegancko, dodatkowo żaden z demonow nie potrzebuje SUID (z wyjątkiem Binda, ten sam się w chroocie zamyka i dlatego sam zeskakuje z roota).

Bezcenne w wypadkach, jak np trzeba kilka wersji PHP odpalić równocześnie, albo jakiś demon lubi czasem zdychać nagle, a jest niezbędny.
Automatyczne restart demona po upadku można zrobić w SystemD,  ale w Daemontools każdy program ma swojego "anioła stróża", który go pilnuje.

Ostatnio edytowany przez Jacekalex (2015-12-08 21:00:22)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#135  2015-12-08 21:33:04

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Na serwer niezłe, ale jak w sesji użyszkodnika chodzi np 45 programów, które muszą mieć różne limity, to SystemD/OpenRC nic nie poradzi, i tak trzeba rzeźbić w konfigach cgconfig, co jest 5 razy trudniejsze, niż rzeźbienie w skrypta, który takie grupy stworzy używając trzech poleceń powłoki: mkdir, echo, chmod.

Czemu trudniejsze? Przykład:

Kod:

group users/firefox {
    perm {
        task {
            uid = root;
            gid = root;
            dperm = 775;
            fperm = 664;
        }
        admin {
            uid = root;
            gid = root;
            dperm = 775;
            fperm = 664;
        }
    }
    cpu {
        cpu.shares = "512";
    }
    memory {
        memory.limit_in_bytes = 512M;
        memory.soft_limit_in_bytes = 128M;
    }
    net_cls {
        net_cls.classid = 0x00010003;
    }
}

Masz tutaj mkdir, touch, chown, chmod, chgrp, i echo. Chyba dokładnie to samo co miałeś u siebie w skrypcie. Co tu do ogarnięcia? xD


Bezcenne w wypadkach, jak np trzeba kilka wersji PHP odpalić równocześnie, albo jakiś demon lubi czasem zdychać nagle, a jest niezbędny.
Automatyczne restart demona po upadku można zrobić w SystemD,  ale w Daemontools każdy program ma swojego "anioła stróża", który go pilnuje.

No systemd ma programowego watchdoga na takie procesy, i jak zdechną to się resetują kilka razy w określonym interwale czasowym (do konfiguracji zarówno ilość resetów jak i interwał nawet per usługa). W sumie to mi się jeszcze nie zdarzyło by ten mechanizm nawalił. Także jest w miarę stabilny. xD

Offline

 

#136  2015-12-08 21:54:10

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: systemd

Czemu trudniejsze?

Kod:

mkdir -p $CGDIR/cpu/users/firefox
echo 1 > $CGDIR/cpu/users/firefox/cgroup.clone_children
echo "300" > $CGDIR/cpu/users/firefox/cpu.shares
mkdir -p  $CGDIR/blkio/users/firefox/emerge
echo '1' > $CGDIR/blkio/users/firefox/cgroup.clone_children
echo '300' > $CGDIR/blkio/users/firefox/blkio.weight
mkdir -p $CGDIR/memory/users/firefox
echo '1'> $CGDIR/memory/users/firefox/cgroup.clone_children
echo '1g' >   $CGDIR/memory/users/firefox/memory.soft_limit_in_bytes
echo '32m' > $CGDIR/memory/users/firefox/memory.kmem.tcp.limit_in_bytes
echo '1g' >   $CGDIR/memory/users/firefox/memory.limit_in_bytes
echo '1g' >   $CGDIR/memory/users/firefox/memory.memsw.limit_in_bytes
echo '1' >   $CGDIR/memory/users/firefox/memory.oom_control 
mkdir -p $CGDIR/net_cls/users/firefox
echo '3' > $CGDIR/net_cls/users/firefox/net_cls.classid
echo '1' > $CGDIR/net_cls/users/firefox/cgroup.clone_children

SystemD ma watchdoga?

A supervise (z Daemontools) pilnuje czy demon działa, i jeśli wykryje wyłącznie, to natychmiast podnosi go na nowo.
Dodatkowo sam skrobiesz skrypty do usług, dzięki czemu można w nich zmieścić sporo różnych opcji, np:
cat /service/nginx/run

Kod:

#!/bin/sh

exec 2>&1
getcap /usr/sbin/nginx | grep cap_net_bind_service 2>&1>/dev/null || setcap cap_net_bind_service+ep /usr/sbin/nginx
exec /usr/bin/setuidgid nginx  /usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;'

Kod:

#!/bin/sh

exec 2>&1
CHROOT="/var/named"

mount -o bind /var/run/named  ${CHROOT}/var/run/named 
mount -o bind /etc/bind  ${CHROOT}/etc/bind
mount -o bind /var/bind  ${CHROOT}/var/bind
mount -o bind /var/log/named  ${CHROOT}/var/log/named

exec /usr/bin/setuidgid root /usr/sbin/named -u named -f -n 2 -t  ${CHROOT}

W SystemD pewnie też się da, ale zabawy z tym jest dużo więcej, prawda?

Supervise w akcji:

Kod:

 killall -9 nginx ; p nginx
root      3610  0.0  0.0   4104   692 ?        S    21:28   0:00 supervise nginx
nginx     8821  0.0  0.3 120184 12676 ?        R    21:56   0:00 /usr/sbin/nginx -c /etc/nginx/nginx.conf -g daemon off;

A to wymagania daemontoolsa:

Kod:

psmemng | egrep 'super|svscan'
128.0 KiB +   1.0 MiB =   1.2 MiB    svscan
616.0 KiB + 660.0 KiB =   1.2 MiB    supervise (8)

Ostatnio edytowany przez Jacekalex (2015-12-08 21:57:39)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#137  2015-12-08 22:17:33

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

No ja wiem, jak wygląda twój skrypt od cgroups. xD Zajrzyj sobie do "man cgconfig.conf" i popatrz po przykładach. Ten plik robi dokładnie to samo co twój skrypt. xD

SystemD ma watchdoga?

Wykorzystuje w sumie dwa. Jeden sprzętowy, do którego jest podpięty sam systemd, a drugi programowy per aplikacja. Dzięki temu, jak padnie aplikacja, to systemd ją podniesie, a jak padnie systemd, to sprzętowy watchdog go podniesie. xD

Pianie dodatkowych skryptów jest bez sensu, no bo przecie jak ci usługa padnie, to zwykle chcesz ją odpalić za pomocą tego polecenia w usłudze i to robi systemd.

W SystemD pewnie też się da, ale zabawy z tym jest dużo więcej, prawda?

Wszystko się da raczej, tylko trza znaleźć rozwiązanie. xD Zawsze skrypt można wywołać z usługi jak prościej się nie da.

Offline

 

#138  2015-12-08 22:19:13

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: systemd

Daemontools to od 15 14 lat martwy projekt :)

Ostatnio edytowany przez yossarian (2015-12-08 22:34:54)

Offline

 

#139  2015-12-08 22:32:08

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Że też takie starocie w debianie trzymają: xD

Stable release     0.76 / July 12, 2001; 14 years ago[1]

Offline

 

#140  2015-12-08 22:33:52

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: systemd

yossarian napisał(-a):

Daemontools to od 15 lat martwy projekt :)

Ale od 15 lat działa prawidłowo, bez żadnych kłopotów.
Ciekawe, ile znasz podobnych przypadków. :)
(nie licząc Qmaila i Djbdns).

Ostatnio edytowany przez Jacekalex (2015-12-08 22:39:51)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#141  2015-12-08 22:37:13

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: systemd

W każdym muzeum znajdziesz masę działających rzeczy, co nie oznacza, że warto zachęcać innych do korzystania :)

Będzie działać, aż nagle przestanie i raczej nikt tego już nie poskłada.

Offline

 

#142  2015-12-08 22:38:47

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Z opisu tego pakietu w debianie wynika jasno, że całą jego funkcjonalność posiada już systemd. xD

Offline

 

#143  2015-12-08 22:41:58

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: systemd

yossarian napisał(-a):

W każdym muzeum znajdziesz masę działających rzeczy, co nie oznacza, że warto zachęcać innych do korzystania :)

Będzie działać, aż nagle przestanie i raczej nikt tego już nie poskłada.

Będzie działać jeszcze wiele lat.

Rzeczy w muzeum są materialne, tu się coś złamie, tu przetarło,
a poluzowało.
Tymczasem w informatyce zawsze możesz dany kod przekompilować z nowymi libami, i jest jak nowy.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#144  2015-12-08 23:05:46

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: systemd

W A.D. 2015 działa to tak:

Kod:

[Unit]
Description=Daemontools service supervision

[Service]
ExecStart=/usr/bin/svscanboot /etc/service/
Restart=always

[Install]
WantedBy=multi-user.target

:)

Debian nie korzysta z inittab (którego używa supervision) przy starcie systemu.

Offline

 

#145  2015-12-08 23:27:34

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: systemd

A w Gentusiu tak:

Kod:

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

depend() {
    use net
    before ntpd ntp-client spamd apache apache2
}

start() {
    ebegin "Starting service scan"
    setsid start-stop-daemon --start --exec /usr/bin/svscan \
        --background --make-pidfile \
        --pidfile /var/run/svscan.pid -- /service
    eend $?
}

stop() {
    ebegin "Stopping service scan"
    start-stop-daemon --stop --exec /usr/bin/svscan \
        --pidfile /var/run/svscan.pid
    eend $?

    ebegin "Stopping service scan services"
    svc -dx /service/* 2>/dev/null
    eend $?

    ebegin "Stopping service scan logging"
    svc -dx /service/*/log 2>/dev/null
    eend $?
}

Jak widać, skrypt startowy z 2004 i chodzi. :D


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#146  2015-12-31 16:55:02

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

Postanowiłem jeszcze na koniec roku przeczyścić system mojej maszyny. Ten SID się nawet dzielnie trzymał bo prawie 1,5 roku ale zaczął się trochę rozrastać i w szczytowym momencie doszedł nawet do 8G. Teraz ma 5.28G. xD Przy okazji przeczyściłem nieco stare kontenery i udało mi się rozwiązać jeden problem, który dotyczył systemd. Chodzi o to, że systemd jest w stanie przy pomocy kernelowskiego keyringa automatycznie otworzyć szereg kontenerów LUKS, tak by nie było potrzeby wprowadzać kilka razy tego samego hasła. Ten mechanizm działa nawet bez systemd ale są potrzebne skrypty z katalogu /lib/cryptsetup/scripts/ i odpowiednia konfiguracja w pliku /etc/crypttab .

Ja korzystałem do tej pory z tych w/w skryptów, bo jeszcze do niedawna systemd nie potrafił realizować tego zadania z automatycznym otwieraniem szeregu kontenerów przy pomocy jednego hasła. Natomiast gdy ten ficzer został zaimplementowany, to otwieranie kontenerów było strasznie wolne, z reguły 2-3x.

Po tym jak postawiłem świeży kontener pod system, musiałem pododawać odpowiednie hasła w pozostałych kontenerach, a to warunkowało dodanie kolejnego keyslota. I tu właśnie się pojawił problem, bo miałem nieużywany keyslot0 i to do niego trafiło hasło, co przy otwieraniu dało niezły boost. Sprawdziłem zatem czy zamiana haseł w slotach wpłynie na szybkość otworzenia kontenera przez systemd.

Kod:

# systemd-analyze blame
         10.234s systemd-cryptsetup@kabi.service
         2.693s systemd-cryptsetup@grafi.service

Ten pierwszy ma hasło w keyslot nr. 3, ten drugi w nr. 1. Zatem różnica jest znaczna. Wcześniej miałem w nr. 2 i to było coś koło 5s. Zatem 2-3s na każdy kontener mniej. Cały ten proces odszyfrowywania kontenerów bardzo obciąża procesor, zatem po ucięciu tych 5-6s, każda z pozostałych usług również dostała lekkiego boosta, co w sumie przyspieszyło start systemu o jakieś 10-12s. Taki prezent na nowy rok. xD Obecnie wygląda tak:

Kod:

# systemd-analyze
Startup finished in 13.932s (kernel) + 24.820s (userspace) = 38.752s

Na dobrą sprawę to przed formatem, system się odpalał w około 50s, także nieco mulił, z tym, że doszło mi szereg usług jak tor, polipo, dnsmasq, czy też apparmor i tam parę innych. xD

Zatem jak ktoś korzysta z szyfrowanych kontenerów pod systemd, to niech zadba o to by to hasło było w pierwszym keyslocie. Przynajmniej póki co.

Offline

 

#147  2016-03-24 18:12:46

  hi - Zbanowany

hi
Zbanowany
Zarejestrowany: 2016-03-24

Re: systemd

morfik fajny tutorial juz zaczynałem się uczyć właśnie od niego aczkolwiek pomimo chęci przejścia poniekąd przymusowego na systemd (wheezy > jeesie)  nie dałem rady niestety na mojej maszynie, mam nvraid w szyfrowanym kontenerze i systemd wywalił się gdzieś pośrodku, spróbowałem następnego podejścia z devuan-em i od palca wszystko poszło, zamieniłem tylko sobie sysv na openrc i bardzo ładnie chodzi..zaczynam rozumieć hejterów systemd;)

Ostatnio edytowany przez hi (2016-03-24 18:24:24)


"Są drogi, którymi nie należy podążać, armie, których nie należy atakować, fortece, których nie należy oblegać, terytoria, o które nie należy walczyć, zarządzenia, których nie należy wykonywać" Sun Tzu

Offline

 

#148  2016-03-24 20:17:04

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: systemd

@Jacekalex, mój system jest bardzo złożony, nieprzejednany i dość skomplikowany przez co przeciętny śmiertelnik miałby z nim same problemy. xD Aktualnie, to temu systemowi trochę więcej ten start zajmuje ale to poniekąd przez to, że od ostatniego wpisu tutaj, sporo się zmieniło. Ja sam nie przepadam za pewnymi elementami system, jak ten cały systemd-cron, czy jak to się tam nazywa, bo to dla mnie jest zwyczajnie overkill i z tego ficzera nie korzystam. Sam init jest przyzwoity i go używam, bo tak jak pisałem, bardzo ułatwia mi życie.

@hi, ja hejterów systemd nie rozumiem, choć może rozumiem ale w tym sensie, że rzadko który z nich dysponuje wiedzą na temat tego initu, przez co nie potrafi go skonfigurować i to wywołuje problemy, z którymi ci hejterzy nie są w stanie sobie poradzić. xD Ja większość problemów z moim systemem rozwiązałem, część z pozostałych wymaga poprawy/zaimplementowania czegoś i tyle. Poza tym, nikt cie nie zmuszał do przejścia na systemd/openrc bo debian wspiera sysvinit, także przeznacz czas, który poświęcasz na rozumienie hejterów systemd, na naukę debiana, w szczególności na fakt instalacji w nim systemu inicjalizacji procesów. Tyle z mojej strony na temat hejtu systemd w debianie. xD

Ostatnio edytowany przez morfik (2016-03-24 20:18:31)

Offline

 

#149  2016-03-25 10:42:40

  hi - Zbanowany

hi
Zbanowany
Zarejestrowany: 2016-03-24

Re: systemd

morfik napisał(-a):

Poza tym, nikt cie nie zmuszał do przejścia na systemd/openrc bo debian wspiera sysvinit, także przeznacz czas, który poświęcasz na rozumienie hejterów systemd, na naukę debiana, w szczególności na fakt instalacji w nim systemu inicjalizacji procesów.

wiem wiem, że nikt mnie nie zmuszał i nie mam żadnych pretensji ani hejtów do systemd, chciałem po prostu zobaczyć z czym to się je i po części z ciekawości jako, że narosło sporo kontrowersji wokół tego initu ale stety-niestety na mojej konfiguracji systemd się wywalił to sięgnąłem w pierwszej kolejności po inne rozwiązanie i okazało się działające, nie mam czasu na dłubanie w jakimś wynalazku, który mi nie zadziałał tym bardziej, że na wyciągnięcie ręki mam działające rozwiązania:)

Ostatnio edytowany przez hi (2016-03-25 10:52:12)


"Są drogi, którymi nie należy podążać, armie, których nie należy atakować, fortece, których nie należy oblegać, terytoria, o które nie należy walczyć, zarządzenia, których nie należy wykonywać" Sun Tzu

Offline

 

#150  2016-10-01 17:14:37

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: systemd

3214

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:45:46)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)