Systemd service késleltetett indítása.

Fórumok

Meg lehet azt valósítani, hogy a systemd saját időzítőjével egy service-t késleltetve lehessen indítani?

Konkrétan a bluetooth.service-t lenne jó mondjuk 10sec-el később startoltatni a bejelentkezés után.

Vagy a systemctl enable parancsnak van-e olyan kapcsolója, hogy az adott service-t késleltett indulással állítjuk be?

Hozzászólások

[Service]
ExecStartPre=/bin/sleep 10

Gábriel Ákos

Így valahogy?

[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
ConditionPathIsDirectory=/sys/class/bluetooth

[Service]
Type=dbus
BusName=org.bluez
ExecStart=/usr/lib/bluetooth/bluetoothd sleep10
NotifyAccess=main
#WatchdogSec=10
#Restart=on-failure
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNPROC=1
ProtectHome=true
ProtectSystem=full

[Install]
WantedBy=bluetooth.target
Alias=dbus-org.bluez.service
 

Igen, azzal a megoldassal nem csak boot eseten lesz kesleltetes az indulasban hanem ha kesobb ujrainditja is.

timer-t lehetne letrehozni es abban megadni OnBootSec=10-et, ileltve systemctl disable Bluetooth service, hogy a timer inditsa el bluetooth-t. (nem tudom egy suspend/hibernalas eseten mondjuk ez hogy viselkedne)

akkor talan hozz letre egy bluetooth.timer-t valahogy igy:

[Unit]
Description=Run bluetooth 10sec after boot

[Timer]
OnBootSec=10

[Install]
WantedBy=timers.target

de ha jol latom a service unit file-odban bluetooth.target-et esetleg dbus logokat kellene megnezned mi tortenhet ami miatt nem mindig indul el indulaskor, inkabb a hiba okat keresd meg ha lehet (esetleg nem tolti be idoben bt-hoz kernel modult es meg kellene adni modules-ban hogy kezdje azzal vagy nem tudom) a workaround helyett.

[Install]
WantedBy=bluetooth.target
Alias=dbus-org.bluez.service

Csak annyit, hogy ne manuálisan kelljen start-ot kiadni a service-re. Mert enabled-el nem mindig működik a bluetooth normálisan.

Az mit jelent, hogy nem működik normálisan?

Ez lenne a jelenség, nem nálam van a probléma. Viszont a megoldás érdekelne.

"Bosszantó hibával élek együtt a Debian10/KDE rendszeren.
10-ből 3-4x a rendszerindításnál nem indul el a Bluetooth. Ilyenkor az ikonja se jelenik meg a panelen, a beállításaiba belemászva,
"A Bluetooth adapter ki van kapcsolva " üzenet fogad. Ezt bekapcsolva, az ikon így se jelenik meg de további gépészkedések után legalább felismeri a BT. egeremet. (A BT. headsetről majd máskor, azt se kezeli le rendesen indulásnál, további kattingatások kellenek hogy normálisan működjön).
Ez nagyon idegesítő mert billentyűzetről ezt a bekapcsolást, majd az egér csatlakoztatását kb. 1 perces zongorázással tudom megcsinálni.
Mivel hordozom naponta a gépet, már ott tartok hogy mindig viszek magammal egy usb-s egeret is mert azzal pikkpakk megoldom kattingatásokkal a BT. egér csatllakoztatásást, de ez egy kicsit olyan vicces kategória.
Kell mégegy egér hogy legyen egerem.

A BT. beállításokban minden olyan funkció be van kapcsolva ami esetleg ezzel kapcsolatos, eredmény nélkül.
Az adapternél a bekapcsolás és állandó láthatóság valamint a bluetooth integráció, az energiaellátásnál is be van pipálva a mindig opció,
az eszközöknél meg az automatikus csatlakozás és a megbízható eszköz is be van pöttyözve.
Az adaptert mindig felismeri, kiírja a beállítóablakba a nevét, és ott virít az "Adapter kikapcsolva" felirat.
Erre van valami megoldás?"

Ha a service disabled és login után start van kiadva, akkor nincsenek ezek a problémák.

Szerkesztve: 2020. 05. 08., p - 17:33

csak tipp, nem tudom fejbol mukodik-e: kell egy "helper" service amiben van a sleep sima ExecStart=-ban, es Type=oneshot. majd a bluethoot servicenek megmondod hogy Requires=eredetirequres.service bluetooth-helper.service. 

igy bootolaskor a helper lefut, majd utana a rendes bt. ha meg csak restartolni kell akkor a sima bt-t restartolod de akkor mar nincs sleep

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Hasonlo a problema a halozati driveok (pl. sshfs) felcsatolasanal.

A sleep nem elegans megoldas, de mukodhet.

A problema gyokeret kellene megtalalni. Itt lehet, hogy a driver betoltese, a halozati drive eseteben pedig a halozat tenyleges elindulasa (kaptam IPt a routertol). Erre kell varni.

Hogy miert nem megy ez a Debiannak magatol, az modnjuk mar eleg erdekes kerdes onmagaban is.