Supervisore processi distribuzione linux

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
miklos
Linux 3.x
Linux 3.x
Messaggi: 1429
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Supervisore processi distribuzione linux

Messaggioda miklos » lun set 25, 2017 17:15

Ciao a tutti,

sto rispolverando il mio vecchio raspberry e dato che slackware su ARM ha inspiegabilmente mollato l'architettura armv6 + hard float ho trovato un modo per crearmi una piccola distribuzione basata su busybox + musl (al posto delle glibc).
Ho cercato alternative meno drastiche ma sono tutte basate su debian e o sistemi completi di desktop (che a me non serve).
Da slackwarista convinto ho deciso di usare esclusivamente strumenti slackware (slackbuilds + pkgtool) e devo dire che il risultato è funzionale, oltre che divertente nello sviluppo.
Ma mi sta venendo un dubbio e vorrei qualche consiglio in piu'.
Sto ragionando su come lanciare i servizi una volta completato il boot, ma vorrei utilizzare un supervisore di processi invece che i classici script sotto /etc/rc.d/ in modo da prevenire arresti di servizi improvvisi.
Cercando su google ho trovato i seguenti

* runit (incluso nel binario busybox)
* monit (che ho utilizzato in passato su slackware per monitorare dei servizi)
* supervisord


a prima vista runit mi sembra la scelta migliore perchè essendo incluso nella pletora dei comandi implementato in busybox renderebbe il sistema autoconsistente (dato che busybox è il componente imprescindibile del sistema operativo), però mi sembra un po' macchinosa la configurazione (script di avvio.. script di arresto.. directory per log opzionali etc etc etc)

Voi che mi suggerite!? E' meglio lasciar perdere e usare i buoni e vecchi script sotto /etc/rc.d?!

Grazie
Michele
ho visto cose che voi astemi non potete immaginare

Avatar utente
lablinux
Linux 3.x
Linux 3.x
Messaggi: 1032
Iscritto il: gio nov 27, 2008 12:23
Slackware: 14 64bit
Desktop: kde4
Località: Rho
Contatta:

Re: Supervisore processi distribuzione linux

Messaggioda lablinux » mar set 26, 2017 12:37

[ot] In debian non devi installare per forza un ambiente grafico, e anche se lo installi non è necessario avviarlo. [/ot]

miklos
Linux 3.x
Linux 3.x
Messaggi: 1429
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: Supervisore processi distribuzione linux

Messaggioda miklos » mar set 26, 2017 14:03

lablinux ha scritto:[ot] In debian non devi installare per forza un ambiente grafico, e anche se lo installi non è necessario avviarlo. [/ot]
si chiaro pero' partendo dall'assunto che il raspberry che ho io (il modello b+) secondo me non ha senso usarlo come computer tradizionale ho trovato le distribuzioni debian derivate troppo 'pesanti'. Il processo di boot è quello delle normali versioni ed è infinitamente piu' lungo e complesso di quello che si riesce a' fare con distribuzioni basate su busybox.

Non ho specificato che il mio progetto è molto semplice e banale e prevede l'utilizzo come accesspoint con alcuni servizi attivi (proxy http.. firewall etc etc etc). Ho dato un occhiata a openwrt ma mi sembra che nn sia piu' tanto sviluppato.
Anche questo non è male
BuildRoot
pero' mi sembra di aver capito che produce immagini e non avendo visto un sistema di gestione pacchetti viene difficile aggiornare il sistema operativo senza dover ripiallare le partizioni della scheda sd (un po' come fa android)

Comunque tornando in topic ho provato ieri sera la soluzione runit presente all'interno di busybox e alla fine non è malaccio. Il progetto è ancora in fase embrionale.. ma appena raggiungo qualcoas di funzionante lo pubblico da qualche parte.. magari puo' essere utile a qualcuno.

Ovviamente se conoscete soluzioni busybox+musl decenti suggerimenti in questo senso sono ben accetti.

Ciao
Michele
ho visto cose che voi astemi non potete immaginare

Avatar utente
lablinux
Linux 3.x
Linux 3.x
Messaggi: 1032
Iscritto il: gio nov 27, 2008 12:23
Slackware: 14 64bit
Desktop: kde4
Località: Rho
Contatta:

Re: Supervisore processi distribuzione linux

Messaggioda lablinux » mar set 26, 2017 14:22

E' da un po che non uso il raspebrry (anch'io ho la prima versione b+). Non ricordo debian e fedora lente. L'unica era slackware (per la mancata compilazione in "hard float"?).
Cos'è busybox? L'ho cercata con google, ma ho le idee più confuse di prima. E' una specie di contenitore di distribuzioni?

miklos
Linux 3.x
Linux 3.x
Messaggi: 1429
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: Supervisore processi distribuzione linux

Messaggioda miklos » mar set 26, 2017 15:06

lablinux ha scritto:Cos'è busybox? L'ho cercata con google, ma ho le idee più confuse di prima. E' una specie di contenitore di distribuzioni?
no.. busybox è una versione ridotta di molti strumenti linux.. si parte dai tool per la gestione del filesystem ext fino a cron, pasando per la gestione dei moduli del kernel, gestione archivi etc etc ec
Una lista completa la trovi qui
Avendo a disposizione una ridotta versione del processo init (quello avviato dal kernel subito dopo essersi caricato) è possibile utilizzarlo per far partire un sistema linux fino al login. Il tutto in circa 2-3MB di eseguibile (dipende dalle librerie C utilizzate, con musl al posto delle glibc il binario risultate è anche piu' piccolo)
Tieni presente che le 'vere' distribuzioni per sistemi embedded (e il raspberry b+ io lo considero facente parte di questa categoria) sono fatte in questo modo.. poco spazio occupato.. sistema di avvio ridotto all'osso etc etc etc

Io ho preso spunto da qui dove un tizio spiega grosso modo come creare una micro distribuzione linux e con quest'idea in testa e sfruttando i tool di slackware (makepkg, installpkg etc etc) sono riuscito a creare una mini distribuzione per il mio raspberry con hard float da cui partire per poi compilare i restanti tool (gestione wireless.. hostpad e servizi vari)
ho visto cose che voi astemi non potete immaginare

Avatar utente
lablinux
Linux 3.x
Linux 3.x
Messaggi: 1032
Iscritto il: gio nov 27, 2008 12:23
Slackware: 14 64bit
Desktop: kde4
Località: Rho
Contatta:

Re: Supervisore processi distribuzione linux

Messaggioda lablinux » mar set 26, 2017 15:26

grazie delle info, ottimo lavoro.
Perché non compilare (solo i pacchetti che ti servono creandoti [non so come] un tuo repository) una slackware con hard float?

miklos
Linux 3.x
Linux 3.x
Messaggi: 1429
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: Supervisore processi distribuzione linux

Messaggioda miklos » mar set 26, 2017 16:04

lablinux ha scritto:Perché non compilare (solo i pacchetti che ti servono creandoti [non so come] un tuo repository) una slackware con hard float?
con il tempo che ho a disposizione riuscirei a malapena a bombardare di email il creatore del porting ufficiale per arm chiedendogli se cortesemente puo' cambiare quel flag passato a gcc da armv7 ad armv6 :badgrin:
Scherzi a parte gli slackbuild ufficiali non supportano la compilazione attraverso versioni del compilatore gcc ad-hoc (non in modo agevole quantomeno) e anche mi aiutaste a trovare un sistema rapido bisognerebbe cambiarli tutti per aggiungere i flag specifici per l'hard float (non so se vi è mai capitato di guardarli ma gli slackbuild ufficiali sono uno diverso dall'altro) e il sistema usato per il porting per arm è troppo complicato (sarà un mio limite)

Io nel caso specifico ho utilizzato questo tool per compilarmi una toolchain specifica per la libreria c che utilizzo (in questo caso musl.. ma esistono tool per generare in automatico toolchain per glibc senza contare che si trovano archivi con toolchain già precompilate) e degli slackbuild che ho scritto e che supportano la cross-compilazione (alias da un pc a 64bit compilare binari per arm).
Mano a mano che compilavo installavo i pacchetti su una root ad-hoc (in modo da avere il filesystem finale da copiare poi sulla scheda sd) che è una procedura un po' rustica se vogliamo ma che ha portato i suoi frutti :)
ho visto cose che voi astemi non potete immaginare

Avatar utente
hashbang
Packager
Packager
Messaggi: 1964
Iscritto il: ven giu 04, 2010 10:27
Nome Cognome: Luca De Pandis
Distribuzione: Win 10 Pro | macOS
Località: Lecce / Bergamo / Milano
Contatta:

Re: Supervisore processi distribuzione linux

Messaggioda hashbang » dom ott 01, 2017 10:36

Io uso supervisord per gestire un servizio che mette su un socket per connettersi ad un dbms. Senza di esso, per capirci, non potresti connetterti via JDBC a questo db, quindi ho bisogno di un respawn automatico in caso di caduta. E devo dire che mi ci trovo veramente bene.

Con gli altri non ho esperienza quindi non saprei fare dei paragoni.

L'unica cosa che devo segnalarti è: lo slackbuild di supervisor su SBo segnala che non ha dipendenze, ma non è così. Richiede meld3. Tuttavia lo slackbuild di medl3 su SBo è una libreria grafica che non c'entra nulla con ciò che chiede supervisor. La libreria richiesta la trovi nel portale dei moduli python, quindi puoi fare un pacchetto Slackware con pochi problemi.
There's a certain kind of programmer who'll look at any problem and say, 'I know, I will use XML.' Now he has two problems.

Stack is the new term for "I have no idea what I'm actually using". [Erich Schubert]

Avatar utente
brg
Linux 2.4
Linux 2.4
Messaggi: 411
Iscritto il: sab mar 12, 2011 14:20
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE4
Località: Montecatini
Contatta:

Re: Supervisore processi distribuzione linux

Messaggioda brg » dom ott 01, 2017 11:30

Io ho un Orange Pi ed uso come distribuzione Armbian che esiste in due versioni: desktop e server. La versione server è senza X e tutti i programmi grafici. Puoi usarla anche come base per farti la tua distribuzione, in particolare tutti i suoi script per la compilazione del kernel sono un ottimo punto di partenza.

Avatar utente
robbybby
Linux 3.x
Linux 3.x
Messaggi: 1221
Iscritto il: sab dic 16, 2006 10:48
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5
Località: Fra Trantor e Terminus

Re: Supervisore processi distribuzione linux

Messaggioda robbybby » mar ott 03, 2017 14:44

Io su Raspberry Pi2 avevo messo una Archlinux ridotta all'osso, ed era anche riuscito a fare il root filesystem in read-only, con sopra un overlayfs.
Altrimenti si può passare ai grossi calibri e usare Yocto per costruire un sistemino su misura. Molto customizzabile e l'immagine viene piccola.
Penso che per partire serva anche questo meta pacchetto per raspberry.

miklos
Linux 3.x
Linux 3.x
Messaggi: 1429
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: Supervisore processi distribuzione linux

Messaggioda miklos » mar ott 03, 2017 16:34

robbybby ha scritto:ed era anche riuscito a fare il root filesystem in read-only, con sopra un overlayfs.
interessante :-k
Comunque alla fine per come avevo iniziato io e in considerazione dell'utilizzo finale che ne dovro fare (un router + access point + firewall + cache http) credo che opterò per openwrt (che ho scoperto di fatto essere una roba simile a Yocto o altri ovvero un sistema di build configurabile per distribuzioni embedded)

In ogni caso continuerò con lo sviluppo della mia micro-distribuzione un po' perchè è divertente un po' perchè di fatto i tool slackware per pacchettizzare sono fenomenali in questo senso (essendo script bash quindi portabili ed eseguibili un po' ovunque)

non ho ancora committato il semplice sistema di build che utilizzo però un'idea di quello che ho fatto la trovate qui (mancano ancora un paio di pacchetti per renderla autosufficiente in quanto a connettività e gestione però si avvia e riesco ad entrare in ssh sul raspberry)
ho visto cose che voi astemi non potete immaginare