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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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
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
@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)
Offline
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:
# 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
Offline
Systemd ma tez swój własny mechanizm do przepisywania nazw. Przykład:
[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
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
[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
[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:
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:
*:firefox cpu,memory,net_cls users/firefox/ *:firefox* cpu,memory,net_cls users/firefox/
I to w zasadzie wszystko. Poniżej test:
# 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
# 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
Do Cgroup potrzebujesz Systemd?
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
Offline
Ja generalnie to zasoby ograniczam sobie przez systemd, przynajmniej systemowych usług. xD Przykład:
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
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:
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)
Offline
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:
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
Czemu trudniejsze?
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
#!/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;'
#!/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:
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:
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)
Offline
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
Daemontools to od 15 14 lat martwy projekt :)
Ostatnio edytowany przez yossarian (2015-12-08 22:34:54)
Offline
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)
Offline
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
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.
Offline
W A.D. 2015 działa to tak:
[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
A w Gentusiu tak:
#!/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
Offline
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.
# 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:
# 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
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)
Offline
@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
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)
Offline
3214
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:45:46)
Offline