Pagina 1 di 1

[RISOLTO][jessie] systemd e target

MessaggioInviato: 02/08/2014, 0:39
da fcel2001
da qualche tempo sono passato a systemd.
mi sono accorto che i miei "vecchi" runlevel non sono stati correttamente convertiti in target.
mi spiego meglio:
con sysvinit avevo configurato il runlevel 2 (di default) con i demoni apache2 e mysql disattivati, e il runlevel 3 con questi demoni attivati, così con telinit potevo decidere quando avviarli o stopparli.

ora il target graphical.target avvia tutto indistintamente.

problema 1: apache2 e mysql non hanno un file *.service >:(
pare che i manteiners del pacchetto mysql-server non abbiano intenzione di provvedere (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742900)
del file apache2.service non so nulla.

domando a chi usa questi 2 software come si è regolato: continua ad usare lo script LSB o ha provveduto a creare un file service ?

problema 2: per fare come prima con telinit, ho creato un mio target personalizzato in cui apache2 e mysql sono disattivati, copiando graphical.target in /etc/systemd/system/ e modificandolo:
Codice: Seleziona tutto
[Unit]
Description=Modifica di Graphical Interface
Documentation=man:systemd.special(7)
Requires=multi-user.target
After=multi-user.target
Conflicts=rescue.target mysql.service apache2.service
Wants=display-manager.service
AllowIsolate=yes

[Install]
Alias=default.target


dopodichè ho provato a passare da un target all' altro con systemctl isolate mio.target e systemctl isolate graphical.target: il comportamento è quello che volevo, con i servizi apache2 e mysql che si avviano e si stoppano correttamente.

Ma ho notato che la connessione WiFi in NetworkManager di gnome si sgancia e riaggancia durante il cambiamento del target: questo non succedeva con il vecchio telinit.
Sbaglio io qualcosa ? E' normale così o c'è modo di evitare questa disconnessione ?

Re: [jessie] systemd e target

MessaggioInviato: 02/08/2014, 10:57
da s3v
man systemd.unit ha scritto: IgnoreOnIsolate=
Takes a boolean argument. If true, this unit will not be stopped when isolating
another unit. Defaults to false.

Non utilizzo NM ma dovresti capire la unit che si occupa della connessione e aggiungere quella opzione a "true".
In questo modo quella unit non dovrebbe essere fermata quando termini con "isolate" un'altra unit.

Strano che non esista un servizio per mysql.

Re: [jessie] systemd e target

MessaggioInviato: 02/08/2014, 15:04
da fcel2001
s3v ha scritto:
man systemd.unit ha scritto: IgnoreOnIsolate=
Takes a boolean argument. If true, this unit will not be stopped when isolating
another unit. Defaults to false.

Non utilizzo NM ma dovresti capire la unit che si occupa della connessione e aggiungere quella opzione a "true".
In questo modo quella unit non dovrebbe essere fermata quando termini con "isolate" un'altra unit.

ho "studiato" questa soluzione: dovrebbe fare al caso mio, ma non funziona ???

i files che controllano NM dovrebbero essere network-manager.service e NetworkManager.service (sono identici) in /lib/systemd/system .

siccome i file network-manager.service e NetworkManager.service sono di sistema, ho pensato di "estendere" la loro configurazione creando le directory network-manager.service.d e NetworkManager.service.d, in cui i files *.conf vengono letti da systemd per sovrascrivere la configurazione dell' unità che ha lo stesso nome della directory.
Ho fatto così (sia per NetworkManager che per network-manager):
Codice: Seleziona tutto
root# ls /etc/systemd/system/NetworkManager.service.d/
personalizzazione.conf

root# cat NetworkManager.service.d/personalizzazione.conf
[Unit]
IgnoreOnIsolate=true

root# systemctl daemon-reload
root# systemctl restart NetworkManager

ma passando da un target all' altro il NM si sgancia sempre.

il comando systemd-delta conferma che le mie modifiche sono state lette:
Codice: Seleziona tutto
[REDIRECTED]   /etc/systemd/system/default.target → /lib/systemd/system/default.
[EXTENDED]   /run/systemd/system/session-1.scope → /run/systemd/system/session-1
[EXTENDED]   /run/systemd/system/session-1.scope → /run/systemd/system/session-1
[EXTENDED]   /run/systemd/system/session-1.scope → /run/systemd/system/session-1
[EXTENDED]   /run/systemd/system/session-1.scope → /run/systemd/system/session-1
[EXTENDED]   /run/systemd/system/session-1.scope → /run/systemd/system/session-1
[EXTENDED]   /run/systemd/system/session-c1.scope → /run/systemd/system/session-
[EXTENDED]   /run/systemd/system/session-c1.scope → /run/systemd/system/session-
[EXTENDED]   /run/systemd/system/session-c1.scope → /run/systemd/system/session-
[EXTENDED]   /run/systemd/system/session-c1.scope → /run/systemd/system/session-
[EXTENDED]   /run/systemd/system/session-c1.scope → /run/systemd/system/session-
[EXTENDED]   /lib/systemd/system/network-manager.service → /etc/systemd/system/n
[EXTENDED]   /lib/systemd/system/cups.socket → /etc/systemd/system/cups.socket.d
[EXTENDED]   /lib/systemd/system/NetworkManager.service → /etc/systemd/system/Ne

14 overridden configuration files found.


ho anche fatto un reboot, ma non cambia nulla.

**EDIT**
ho trovato che è wpa_supplicant a disattivarsi....ma quanto è complicato questo systemd !!!!!
per stoppare 2 daemon biosogna riconfigurare mezzo sistema >:( >:(
s3v ha scritto:Strano che non esista un servizio per mysql.

già, sono passati mesi e il maintainer ancora non provvede

Re: [jessie] systemd e target

MessaggioInviato: 02/08/2014, 15:48
da fcel2001
dunque, ho eliminato tutte le precedenti modifiche, e poi ho creato la directory /etc/systemd/system/wpa_supplicant.service.d/ con dentro il file personalizzazione.conf:
Codice: Seleziona tutto
[Unit]
IgnoreOnIsolate=true


questo permette di passare dal target "graphical" ad un altro personalizzato senza problemi.
ma se vado nel rescue.target e poi premo CTRL-D per tornare alla grafica, si verificano degli errori:
  • non viene completato il logout dalla shell di rescue
  • gdm3 inizia a caricarsi ma mostra solo il desktop senza la finestra di login

Sicuramente è la direttiva IgnoreOnIsolate su wpa_supplicant a creare problemi: sicuramente ha a che fare con dbus
Codice: Seleziona tutto
[Unit]
Description=WPA supplicant

[Service]
Type=dbus
BusName=fi.epitest.hostap.WPASupplicant
ExecStart=/sbin/wpa_supplicant -u -s -O /var/run/wpa_supplicant

[Install]
WantedBy=multi-user.target
Alias=dbus-fi.epitest.hostap.WPASupplicant.service

Re: [jessie] systemd e target

MessaggioInviato: 02/08/2014, 16:54
da s3v
Ho cercato di individuare la causa del malfunzionamento ma non ci sono riuscito (uso KDM).
1) Ho installato "wpasupplicant"
2) Ho creato il file "/etc/systemd/system/wpa-supplicant.service.d/mio.conf" con il tuo stesso contenuto
3) Ho riavviato in rescue mode

Tutto sembra andare regolarmente dopo il ctrl+d
Codice: Seleziona tutto
$ systemctl -p IgnoreOnIsolate show wpa_supplicant.service
IgnoreOnIsolate=yes


Puoi indicare esattamente tutti i passi che hai intrapreso? Così cerco di replicare il problema.

Re: [jessie] systemd e target

MessaggioInviato: 02/08/2014, 18:18
da fcel2001
s3v ha scritto:...
3) Ho riavviato in rescue mode
...
Puoi indicare esattamente tutti i passi che hai intrapreso? Così cerco di replicare il problema.

Al momento ho fatto piazza pulita.......ora magari riprovo a fare il boot direttamente in rescue mode per poi dare il ctrl-d e vedere che fa.

Hai provato invece dal graphical.target a dare il comando systemctl rescue, entrare con la password, e poi ctrl-d ?
E' in questo caso che nascevano i problemi.

Re: [jessie] systemd e target

MessaggioInviato: 03/08/2014, 11:47
da fcel2001
s3v ha scritto:Tutto sembra andare regolarmente dopo il ctrl+d

ho trovato questo:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=693522

non è esattamente la stessa situazione, ma il problema è molto simile: anche nel mio caso il processo /sbin/agetty va al 100% della CPU (messaggio #37 del bugreport).
non è solo un fatto di networkmanager, è proprio systemd che è buggato

Re: [jessie] systemd e target

MessaggioInviato: 06/08/2014, 18:16
da s3v
fcel2001 ha scritto:Hai provato invece dal graphical.target a dare il comando systemctl rescue, entrare con la password, e poi ctrl-d ?
E' in questo caso che nascevano i problemi.

Non ho problemi se non il terminale tty1 bloccato, ma non saprei se sia normale o meno in rescue mode lanciato dopo il boot.

Tu hai problemi anche col escue mode al boot?
Sei comunque riuscito a fermare i due servizi che ti interessavano?

Re: [jessie] systemd e target

MessaggioInviato: 07/08/2014, 14:25
da fcel2001
s3v ha scritto:Tu hai problemi anche col escue mode al boot?
Sei comunque riuscito a fermare i due servizi che ti interessavano?


Al boot funziona correttamente: soltanto dal graphical.target verso rescue.target si presentano problemi.

Ho fermato i due servizi con il modo da te suggerito (e ti ringrazio) e riportato sopra: spero che sia giusto, non conoscendo ancora bene systemd non so se magari ci sono effetti collaterali nei confronti di altri target

Re: [jessie] systemd e target

MessaggioInviato: 08/08/2014, 13:22
da s3v
Credo tu possa contrassegnare la discussione come [Risolta].

Non so se eseguire il rescue mode a sistema avviato sia un'operazione consigliata o prevista. Bisognerebbe sapere quali servizi vengono disabilitati: forse a sistema avviato accade che qualche servizio non venga chiuso oppure che non venga riaperto.

Facci sapere se hai in futuro informazioni su questo punto.