Halo #linux #systemd #raspberrypi

Potrzebuje napisać service który będzie się odpalał co 5 sekund, maks do 10 razy w przypadku exit code różnego od zera, czyli w przypadku niepowodzenia.

Mam aktualnie coś takiego:

[Unit]
Description:xxxxxxxxx
After=dnsmasq.service
SmartLimitIntervalSec=10
StartLimitBurst=5

[Service]
User=pi
WorkingDirectory=/usr/local/bin
ExecStart=/bin/bash /usr/local/bin/xxxxxxxx.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user-target

Ma ktoś pomysł dlaczego to działa jak chce, i jak ewentualnie tego dokonać?
@Kryspin013: o, to by było kozackie. Przychodzi mi do głowy generowanie plików skryptem (np. w pythonie) w jednorazowym unicie typu oneshot, który będzie odpalony jako zależność dla unita mountującego.
dlatego właśnie service żeby się dało ( ͡° ͜ʖ ͡°) po prostu na pałę odpali "mount /foo /bar" i tyle


@diogene: No to tak to wiem, że się da. Po prostu kminiłem czy na mount się da :P
Mam pomysł na biznes, możecie nawet ukraść mój pomysł.

AirBnB!

Znaczy, nie wynajmowanie swojego mieszkania, a wynajmowanie mieszkania i.....

... i zamieszczenie w ukrytych miejscach koparek bitcoinów z raspberry pi, rpi nie jest aż takie drogie, jak same koparki usb, więc można by było umieszczać koparki bitcoinów w mieszkaniach AirBnB!

Jak ktoś posłucha mojej propozycji to nie ciągnijcie przedłużników do rpi (bo to widać), tylko ukryjcie fajnie rpi z koparkami :)
Np.
Jestem na dość początkowym etapie tworzenia serviców pod systemd, więc mogę pisać głupoty, albo niezrozumiale.

Robię service pod systemd, w którym dotychczas nie potrzebowałem żadnego logowania, a wszystko co service wypluwał szło do sysloga (StandardOutput=syslog). Obecnie po pojawieniu się logowania potrzebowałbym przekierowywać output do pliku (co udało mi się znaleźć jak zrobić TUTAJ - jeszcze nie sprawdzałem jak i czy działa).
W każdym razie problem mam inny. Oprócz logu w pliku, czasami
@CytrynowySorbet: Jak się usługa odpala jako demon przez system.d to nie dostaje konsoli (albo inaczej, jego konsola to /dev/null). Jakby Ci nagle wszystkie usługi na konsole zaczęły rzygać swoimi printami, to byś nie mógł pracować. Jak chcesz sobie "w czasie rzeczywistym" podglądać logi z /var/log/log_turbo_demona.txt, to użyj tail z opcją "follow":

tail -f /var/log/log_turbo_demona.txt
ewentualnie tu też powinny być logi z danej usługi:

sudo systemctl status mój_turbo_demon
Jakby Ci nagle wszystkie usługi na konsole zaczęły rzygać swoimi printami, to byś nie mógł pracować.


@dict: racja, o tym nie pomyślałem, że jeden serwis by nie szkodził, ale jak każdy by tak pomyslał to by zasypało konsole.
Dzięki za podpowiedź.
taila i systemctl znam, bo obecnie korzystam, ale szukałem czegoś bardziej idiotoodpornego, bo korzystać z tego mają też osoby które o linuksie nie mają za dużo pojęcia. Ale to po
Mirki, jak uzależnić moment autostartu kontenera w dockerze od jakiejś usługi systemd?
Docker ma opcję --restart=always, która próbuje postawić kontener, aż ten zacznie działać. Ale jest to mało wyrafinowane.
Usługę systemd samego dockera można zmodyfikować, aby czekała na inną usługę, ale wtedy uzależni to start wszystkich autostartujących kontenerów na danym serwerze.
Jest jakieś standardowe rozwiązanie tego problemu?

#docker #linux #systemd #unix
#linux

Zesrał mi się #systemd.
Login manager startuje 100 lat bo nie odpala się haveged. Ten z kolei nie może się odpalić bo nie może stwierdzić, czy system nie działa w konetenerze. A sprawdzanie to jest zaimplementowane tak, że próbuje czytać
/proc/1/sched co u mnie jest puste. Chyba po nowym kernelu to się skupczyło. Ktoś coś wie?
@GRzA6969: testowałem sysv, openRC i mogę z cała pewnością polecić. Zero problemów montowaniem czy wyłączaniem kompa. W systemd miałem taki problem po jakiejkolwiek aktualizacji. W fedorze już w trybie live nie chciał mi się wyłączyć ( ͡° ͜ʖ ͡°)
@BlackMask: mnie zżera ciekawość ( ͡° ͜ʖ ͡°) Głupio tak o sobie mówić, że jest się linuksiarzem, a nigdy nie zainstalować do końca Gentoo :) Oczywiście zdaje sobie sprawę ile trwa kompilacja. Naiwnie liczę na to, że jakiś dobry Ryzen + szybki SSD coś pomogą xD