Brscan-skey tool non funziona in autoavvio su KDE

Ciao a tutti,
avevo configurato una multifunzione via ethernet, della brother.
Nessun problema fino ad oggi.

Per far partire, in automatico e per il mio utente, il tool in modo da permettere la funzione di invio remoto delle scansioni, tramite l’utilizzo di un pulsante da pannello, avevo configurato nella sottodirectory .kde/Autostart, lo script scanner.sh, che non faceva altro che:

[samuele@vaio ~]$ cat .kde/Autostart/scanner.sh 
#!/bin/sh
/usr/bin/brscan-skey -l > /home/samuele/scanner.txt
sleep 30
/usr/bin/brscan-skey

Il -l fa l’elenco delle periferiche trovate attive, il brscan-skey “secco”, attiva il demone permanente per la sessione.

Cosa succede adesso: il -l funziona, ma quando parte il demone, non è più possibile trovare lo scanner, riutilizzando lo switch -l con il comando.

Se fermo il servizio tramite una kill del processo, lo lancio nuovamente a mano, rilancio successivamente l’elenco delle periferiche, e tutto funziona correttamente.

Come devo comportarmi?

Ho fatto alcune prove.
Se aggiungo il richiamo dell’eseguibile al .bash_profile:
facendo il primo accesso tramite console (e non su kde), il brscan-skey tool riconosce correttamente lo scanner.
Dopo posso fare accesso, senza problemi, all’interfaccia kde.

Se accedo direttamente da kde, il tool risulta avviato ma non riconosce lo scanner.

Altra prova disabilitando l’avvio automatico: se avvio il tool con un lanciatore da scrivania, lo scanner non viene visto correttamente.
Se lancio il tool a mano, dal terminale dentro kde, nessun problema. Idee?

Ho provato anche con systemd. Niente.

Non conosco il programma che usi nel tuo script. Mi pare di capire che il primo comando venga eseguito, giusto? Se così fosse non sarebbe un problema di KDE ma dello script. Nello specifico, lo “sleep 30” mi lascia un po’ perplesso: a cosa serve? Perché 30 e non 10 o 40?

Riguardo SystemD: sicuro che lo script sia eseguito?

Sì, il primo comando viene eseguito. Il primo comando, anche senza “demone” attivo, mostra le periferiche disponibili.
Lanciando il solo brscan-skey, si attiva questo demone: se tutto funziona correttamente, digitando nuovamente brscan-skey -l , dovrebbe far vedere la lista delle periferiche attive e disponibili.

Nel caso che faccio tramite autostart di kde, o lanciatore da scrivania, il brscan-skey -l non vede più le periferiche, benché il “demone” sia attivo.
Così come con systemd: confermo quindi che systemd ha attivato lo script, perché lo trovo tra i processi attivi.

Nessun problema a lanciarlo manualmente da terminale dentro una sessione kde.
Il “demone” viene attivato, e brscan-skey -l restituisce la lista delle periferiche disponibili e attive al momento.

Questo conferma che il problema stia nello script. Come chiedevo prima, come mai c’è sleep 30 e non sleep 60 (ad esempio)? A cosa serve questo timeout? Non è che magari lo script da problemi perché questo tempo è troppo piccolo?

brscan-skey -l, non è necessario “prima”.
lo sleep l’ho messo anche a 60, ma senza risultati positivi.

Anche inserendo nel .bash_profile dell’utente lo script
“/usr/bin/brscan-skey”
accedendo tramite kde, non vedo lo scanner. Passando prima da login solo testo, sì.

Non vorrei che il problema sia legato a qualcosa del terminale (console) di kde: quando lancio konsole tramite alt-f2 (come facevo prima della reinstallazione --> scrivendo terminal), il terminale si apre, ma rimane nero, senza dare il prompt. Se da altro terminale scrivo “konsole” ricevo: Errore di segmentazione

Non è una bella cosa, bisognerebbe capire perché (magari usando strace).
Se fosse quello però, lo script andrebbe con SystemD.

Quello che mi pare di capire è che il tuo script non va se è avviato quando il sistema si sta avviando o quando parte la sessione, dopo invece va, giusto? Non è che c’è qualche servizio che non è ancora attivo, un qualche tipo di meccanismo che porta ciò? Prova a mettere uno sleep 60 come primo comando dello script, tanto per vedere che cosa accade.

Fatto anche quello, con uno sleep di 120 secondi. Niente. Non va se passo da kde, neanche lanciandolo tramite un lanciatore. Nessun problema, invece, passando da sessione testo.

Idea: non usare il tuo script come lanciatore, crea un lanciatore che rimandi al tuo script, tipo:

bash /home/franco/script.sh

non funziona neanche così :frowning:

Trovato il problema: ho ricreato il profilo da capo, copiando le directory autostart di .kde, la posta e la cartella con le configurazioni grafiche del desktop. Adesso funziona tutto correttamente, anche brscanskey!