Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Hardware => Téma založeno: dimmuboy 30 Srpna 2012, 07:53:55

Název: Skript po Suspend-e
Přispěvatel: dimmuboy 30 Srpna 2012, 07:53:55
Zdravim, viem ze sa to tu uz velakrat riesilo no aj tak som nenasiel riesenie pre moj problem.
Zistil som ze potrebujem spustit tieto dva prikazy aby sa obnovila funkcnost wifi
Kód: [Vybrat]
$ sudo rfkill unblock wifi
$ dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
Mozno sa to da spravit aj efektivnejsie no ja som nasiel iba tento sposob a potrebujem aby sa spustili tieto dva prikazy po suspende. Hodil som to do suboru /etc/pm/sleep.d/10_wifi
Kód: [Vybrat]
case "${1}" in
resume|thaw)
   sudo rfkill unblock wifi
   dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
;;
esac
ale nefunguje to a neviem sa pohnut dalej.
Dakujem za pomoc ;)

//EDIT: zmenil som nazov suboru na "00_wifi" a skript sa spusti no wifi nenabehne, mozno sa spusta prilis skoro
Název: Re:Skript po Suspend-e
Přispěvatel: GdH 30 Srpna 2012, 09:43:31
Resume skripty spouští root, takže vyhoď to sudo. Pokud by se to opravdu spouštělo brzy, pak to můžeš zpozdit normálně sleepem, ale v subshellu na pozadí, aby se neblokovaly další skripty. Také je dobré začínat skripty určením interpretu, který se má použít.

Kód: [Vybrat]
#!/bin/sh

case "$1" in
   resume|thaw)
      sh -c "sleep 5; rfkill unblock wifi
         dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true" &
   ;;
esac
Název: Re:Skript po Suspend-e
Přispěvatel: dimmuboy 30 Srpna 2012, 11:38:37
jasne.. na ten sudo som zabudol a sleep napadol aj mna len som chcel vediet ci nema niekto nejake elegantnejsie riesenie lebo moze sa stat ze bude niekedy v buducnosti trvat to prebudenie dlhsie a uz mu bude "sleep 5" malo  :)

no vyskusane ale nefunguje to, skusal som aj sleep 15 a nic.. este nieco potestujem
Název: Re:Skript po Suspend-e
Přispěvatel: Rover623 30 Srpna 2012, 12:15:13
Zkus to takhle
Kód: [Vybrat]
#!/bin/bash
case "$1" in
    thaw|resume)
        rfkill unblock all
        dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
        ;;
    *)
        ;;
esac
exit $?
nacpi to souboru 0000wifi.sh, dej tomu souboru spustitelný příznak a dej to buď do sleep.d nebo do power.d
Název: Re:Skript po Suspend-e
Přispěvatel: dimmuboy 02 Září 2012, 20:16:43
no takze dal som to do "/etc/pm/sleep.d/0000wifi.sh", nastavil cez chmod x no po obnoveni zo spanku sa nic nezmenilo
skusil som dat pred ten rfkill aj "sleep 10" ale nepomohlo
Název: Re:Skript po Suspend-e
Přispěvatel: Rover623 02 Září 2012, 20:59:02
Zkus to tedy rozdělit na 2 skripty, jeden s názvem "0000wifi.sh" a obsahem
Kód: [Vybrat]
bin/bash
case "$1" in
    thaw|resume)
        rfkill unblock all
        ;;
    *)
        ;;
esac
exit $?
Ten druhý nastav tak aby proběhl co nejpozději, takže asi "0097wifi.sh" s obsahem
Kód: [Vybrat]
bin/bash
case "$1" in
    thaw|resume)
        dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
        ;;
    *)
        ;;
esac
exit $?
Na oba musíš mít nastavené spustitelné příznaky
Název: Re:Skript po Suspend-e
Přispěvatel: dimmuboy 02 Září 2012, 21:26:19
aha takze to cislo v nazve urcuje casove oneskorenie? no bohuzial nepomohlo, ono mi to pride ako keby sa to vobec ani nespustilo.
neviem preco, prava mam nastavene presne tak ako aj ostatne subory v sleep.d/ a ked som skusal do toho skriptu prihodit nejaku hlupost napr. vytvori subor pomocou echo tak to nespravil
Název: Re:Skript po Suspend-e
Přispěvatel: GdH 02 Září 2012, 21:48:28
aha takze to cislo v nazve urcuje casove oneskorenie? no bohuzial nepomohlo, ono mi to pride ako keby sa to vobec ani nespustilo.
neviem preco, prava mam nastavene presne tak ako aj ostatne subory v sleep.d/ a ked som skusal do toho skriptu prihodit nejaku hlupost napr. vytvori subor pomocou echo tak to nespravil

Neurčuje to čas, ale pořadí - je to spouštěné podle abecedy, přičemž konvence určuje první dva znaky názvu jako číslo určující prioritu - 00 má nejnižší, spouští se první při suspend a poslední při resume. Když má toto dvojčíslí shodné více skriptů, určují pořadí další znaky a při shodě by přednost měly mít skripty v /etc/pm/sleep.d před /usr/lib/pm-utils/sleep.d
Název: Re:Skript po Suspend-e
Přispěvatel: dimmuboy 02 Září 2012, 22:07:54
vdaka za vysvetlenie ;) len aj tak stale nechapem preco to nefunguje
Název: Re:Skript po Suspend-e
Přispěvatel: Cuore 05 Září 2012, 00:09:33
já jo  ;D stejné peripetie jsem řešil taky a bohudík i vyřešil, vše je o právech jak psal GdH, po probuzení se ti vše spouští pod root. Přečti si tohle http://forum.ubuntu.cz/index.php?topic=63137.0 (http://forum.ubuntu.cz/index.php?topic=63137.0)