Autore Topic: Systemd - Avvio script al boot  (Letto 2265 volte)

Offline alex

  • *
  • Post: 190
  • Reputazione: 4
    • Mostra profilo
Systemd - Avvio script al boot
« il: 18 Giugno 2013 ore 10:10 »
Ciao, non ho trovato nulla a riguardo nel forum e credo che questa sia la sezione giusta.

Ho bisogno di lanciare un semplice script all'avvio (i comandi ricavati da powertop per ridurre il consumo, e il cambio di permessi su alcuni file per poterci poi accedere senza il bisogno della pw di root).

Seguendo le informazioni trovate in rete ho creato il file "mypower" in: /usr/lib/systemd/mypower

Lanciato direttamente dalla console funziona, quindi non penso ci siano errori.

poi ho creato il servizio "myscript.service" (si potevo mettere un nome migliore  :-[ ):

Codice: [Seleziona]
[Unit]
Description=myscript

[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/scripts/mypower

[Install]
WantedBy=multi-user.target

l'ho lanciato con: systemctl start myscript

e poi abilitato per averlo all'avvio con: systemctl enable myscript

in questo momento non ricordo se l'ho lanciato con solo myscript o con myscript.service, comunque una solo delle due funzionava... abbiate pazienza, era notte e ora non ho il notebook sottomano per verificare.

Me lo ha avviato al boot solo una volta, nei riavvii successivi nulla.... ho sbagliato qualcosa? qualche indicazione generale? o un indicazione ad una guida più precisa....

grazie!

Offline Cylon

  • *
  • Post: 1960
  • Reputazione: 78
  • CYbernetic Life fOrm Node
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #1 il: 18 Giugno 2013 ore 15:06 »
hai datto uno sguardo al sacro wiki di arch ?
We are the Cylons. Lower your firewalll and surrender.Your PC will adapt to service our GNU/Linux systems. Resistance is futile. Extermination of human race has began!
                                                                     Non rispondo a PM

Offline alex

  • *
  • Post: 190
  • Reputazione: 4
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #2 il: 18 Giugno 2013 ore 15:33 »
si, sono partito da quella guida e in particolare c'è quello che mi serve qui

https://wiki.archlinux.org/index.php/Systemd_FAQ_(Italiano)#Q:_Come_posso_fare_in_modo_che_uno_script_sia_eseguito_al_boot.3F

Cambia solo che il file di script lo mettono su /usr/bin, ma non funzionava e ritornava errore quando cercavo di lanciare il servizio ["Failed to issue method call: Bad Message"]. Mettendolo su /usr/lib/systemd, come facevano in molte altre guide che ho trovato, invece funziona se lo lancio io (start) ma non parte all'avvio (enable). Solo una volta mi ha funzionato all'avvio, ma a questo punto mi viene anche il dubbio di essermi sbagliato. A meno che la cosa non sia dipesa dall'ordine in cui lo script è stato processato, magari per culo è stato eseguito prima o dopo di qualcosa che da fastidio.
« Ultima modifica: 18 Giugno 2013 ore 15:39 da alex »

Offline Cylon

  • *
  • Post: 1960
  • Reputazione: 78
  • CYbernetic Life fOrm Node
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #3 il: 18 Giugno 2013 ore 15:45 »
hai visto se systemd ti dà qualche informazione del perché il servizio myscript.service non è partito?
We are the Cylons. Lower your firewalll and surrender.Your PC will adapt to service our GNU/Linux systems. Resistance is futile. Extermination of human race has began!
                                                                     Non rispondo a PM

Offline alex

  • *
  • Post: 190
  • Reputazione: 4
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #4 il: 18 Giugno 2013 ore 15:56 »
Pensavo di provare questa sera con "systemctl --failed" e "systemd-analyze", e intanto speravo di recuperare qualche informazione.

Un alternativa per quello che mi serve era anche l'uso dei file temporanei di systemd, come mi avevate consigliato tempo fa qui sul forum, ma non ero riuscito ad usarli e questa strada mi sembrava più semplice e anche più interessante per imparare qualcosa.

Offline Cylon

  • *
  • Post: 1960
  • Reputazione: 78
  • CYbernetic Life fOrm Node
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #5 il: 18 Giugno 2013 ore 16:16 »
Codice: [Seleziona]
"systemctl --failedquesto ti fà vedere i servizi con problemi...

Codice: [Seleziona]
"systemd-analyze"questo non ti dà alcuna informazione utile tranne che i tempo di boot e altre cose.

prova il primo comando che hai postato e poi anche
Codice: [Seleziona]
systemctl list-unit-filesper vedere lo stato dei vari servizi
We are the Cylons. Lower your firewalll and surrender.Your PC will adapt to service our GNU/Linux systems. Resistance is futile. Extermination of human race has began!
                                                                     Non rispondo a PM

Offline alex

  • *
  • Post: 190
  • Reputazione: 4
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #6 il: 18 Giugno 2013 ore 19:57 »
Allora, questo è il risultato:

Codice: [Seleziona]
[alex@chakra-s9pc ~]$ cat /sys/devices/platform/samsung/performance_level
normal
[alex@chakra-s9pc ~]$ systemctl --failed
UNIT             LOAD   ACTIVE SUB    DESCRIPTION
myscript.service loaded failed failed myscript

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

1 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
[alex@chakra-s9pc ~]$ sudo systemctl start myscript.service
Password:
[alex@chakra-s9pc ~]$ cat /sys/devices/platform/samsung/performance_level
silent
[alex@chakra-s9pc ~]$

- mysript.service viene caricato ma non è attivo
- se lo faccio partire manualmente funziona

quindi? può dipendere dal momento in cui viene eseguito?

Devo ancora provare, ma pensavo che "systemd-analize" potesse mostrarmi quando viene caricato.

Offline Cylon

  • *
  • Post: 1960
  • Reputazione: 78
  • CYbernetic Life fOrm Node
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #7 il: 18 Giugno 2013 ore 21:00 »
a limite potresti farlo partire dopo kdm.service.
We are the Cylons. Lower your firewalll and surrender.Your PC will adapt to service our GNU/Linux systems. Resistance is futile. Extermination of human race has began!
                                                                     Non rispondo a PM

Offline alex

  • *
  • Post: 190
  • Reputazione: 4
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #8 il: 18 Giugno 2013 ore 22:12 »
fatto e... niente! tutto come prima. Grazie comunque  :)

Offline Cylon

  • *
  • Post: 1960
  • Reputazione: 78
  • CYbernetic Life fOrm Node
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #9 il: 18 Giugno 2013 ore 22:14 »
che ti dice
Codice: [Seleziona]
systemctl list-unit-files
We are the Cylons. Lower your firewalll and surrender.Your PC will adapt to service our GNU/Linux systems. Resistance is futile. Extermination of human race has began!
                                                                     Non rispondo a PM

Offline alex

  • *
  • Post: 190
  • Reputazione: 4
    • Mostra profilo
R: Systemd - Avvio script al boot
« Risposta #10 il: 18 Giugno 2013 ore 22:35 »
Prima diceva che è abilitato, con l'ultima modifica non ho verificato ma credo sia lo stesso.


Offline whoami

  • *
  • Post: 1562
  • Reputazione: 64
  • Quando c'era init i log arrivavano in orario!
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #11 il: 18 Giugno 2013 ore 22:52 »
sudo systemctl status myscript.service che ti dice?
echo "VQF AHELME I BI CI WECPF"| tr "ETAOINSHRDLUBCFGJMQPVWZYXK" "A-Z"

Offline alex

  • *
  • Post: 190
  • Reputazione: 4
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #12 il: 19 Giugno 2013 ore 01:44 »
l'output di "systemctl list-unit-files":

Codice: [Seleziona]
laptop-mode-tools.service                   disabled
lm_sensors.service                          disabled
lvm-on-crypt.service                        disabled
lvm.service                                 disabled
mdadm.service                               disabled
modem-manager.service                       disabled
myscript.service                            enabled
mysqld.service                              disabled
net-auto-wired.service                      disabled
net-auto-wireless.service                   disabled
netcfg.service                              disabled
netcfg@.service                             disabled

e

Codice: [Seleziona]
[alex@chakra-s9pc ~]$ sudo systemctl status myscript.service
Password:
myscript.service - myscript
   Loaded: loaded (/etc/systemd/system/myscript.service; enabled)
   Active: failed (Result: exit-code) since mer 2013-06-19 03:28:12 CEST; 1min 56s ago
  Process: 167 ExecStart=/usr/lib/systemd/scripts/myscript (code=exited, status=1/FAILURE)

giu 19 03:28:12 chakra-s9pc myscript[167]: /usr/lib/systemd/scripts/myscript: line 12: /sys/bus/usb/devices/3-1.5/power/control: File o directory non esistente
giu 19 03:28:12 chakra-s9pc myscript[167]: /usr/lib/systemd/scripts/myscript: line 13: /sys/bus/usb/devices/3-1.3/power/control: File o directory non esistente
giu 19 03:28:12 chakra-s9pc myscript[167]: chgrp: impossibile accedere a "/sys/devices/platform/samsung/performance_level": File o directory non esistente
giu 19 03:28:12 chakra-s9pc myscript[167]: chmod: impossibile accedere a "/sys/devices/platform/samsung/performance_level": File o directory non esistente
giu 19 03:28:12 chakra-s9pc myscript[167]: /usr/lib/systemd/scripts/myscript: line 31: /sys/devices/platform/samsung/performance_level: File o directory non esistente
giu 19 03:28:12 chakra-s9pc myscript[167]: chgrp: impossibile accedere a "/sys/devices/platform/samsung/leds/samsung::kbd_backlight/brightness": File o directory non esistente
giu 19 03:28:12 chakra-s9pc myscript[167]: chmod: impossibile accedere a "/sys/devices/platform/samsung/leds/samsung::kbd_backlight/brightness": File o directory non esistente
giu 19 03:28:12 chakra-s9pc myscript[167]: /usr/lib/systemd/scripts/myscript: line 37: /sys/devices/platform/samsung/leds/samsung::kbd_backlight/brightness: File o...n esistente
[alex@chakra-s9pc ~]$

Ottimo Whoami, così si vede cosa effettivamente fa! sembra che i file a cui vorrei accedere non siano ancora disponibili, ma in questo momento lo script è eseguito dopo kdm.service come mi consigliava Cylon... non dovrebbero essere già disponibili?  ???

Offline whoami

  • *
  • Post: 1562
  • Reputazione: 64
  • Quando c'era init i log arrivavano in orario!
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #13 il: 19 Giugno 2013 ore 07:34 »
non so perché non siano ancora disponibili quei file... però potresti provare a far eseguire lo script all'avvio di kde, da impostazioni di sistema->avvio e spegnimento invece che da systemd, magari a quel punto è già tutto pronto...
echo "VQF AHELME I BI CI WECPF"| tr "ETAOINSHRDLUBCFGJMQPVWZYXK" "A-Z"

Offline Cylon

  • *
  • Post: 1960
  • Reputazione: 78
  • CYbernetic Life fOrm Node
    • Mostra profilo
Re:Systemd - Avvio script al boot
« Risposta #14 il: 19 Giugno 2013 ore 07:56 »
io proverei a farlo partire dopo kdm, visto che prima non parte.. o al limite farei anche da plasma desktop come dice whoami
We are the Cylons. Lower your firewalll and surrender.Your PC will adapt to service our GNU/Linux systems. Resistance is futile. Extermination of human race has began!
                                                                     Non rispondo a PM

 

Template by Homey | Sito ufficiale | Disclaimer