PDA

Visualizza versione completa : avvio automatico con systemd (ex initscript)



Andy86
14-05-15, 15: 45
:bai

Sto cercando di impostare proftpd per l'avvio automatico, in modo da non dovermi ricordare di lanciarlo a mano, siccome va avviato con permessi di root non posso metterlo con l'avvio automatico di kde, salvo vedermi spuntare una finestrella di kdesu ad ogni avvio che aspetta la password... ovviamente non è ciò che voglio.

Ho letto che con systemd non ci sono più i vari initscript, rc.d, rc.local, ecc... quindi la procedura da seguire dovrebbe essere questa:

[Risolto] Proftpd (Pagina 1) / [Legacy] Configurazione / Fedora Online Forum (http://forum.fedoraonline.it/viewtopic.php?id=19223)

Solo che a me non funziona.
Il servizio viene abilitato normalmente, ma non lo avvia.
Anche se provo ad avviarlo a mano se ne frega altamente. :boh


Only registered members can view code.

Stando a guardare l'ora nello status sembra che si schianti subito dopo l'avvio, ma non riesco ad immaginare perché.

pierino_89
14-05-15, 20: 35
Non hai pensato di controllare nel log? :ghgh

Andy86
14-05-15, 20: 59
:bai

Onestamente no, pensavo che se avesse avuto qualcosa da dire me lo avrebbe detto direttamente nel terminale quando l'ho lanciato a mano.:bgg2

Comunque dmseg non dice niente.

Journalctl invece sembra registrare solo la chiamata:


Only registered members can view code.

pierino_89
14-05-15, 21: 06
Eh no, quando mai /etc/init.d/servizio ti dice qualcosa?
"dmesg" è il log del kernel, non deve dire niente :ghgh
journalctl è l'unico che potrebbe dire qualcosa, ma cercherei prima in /var/log se c'è qualcosa. Sennò lancia proprio il processo a mano con le varie opzioni di debug e vedi cosa dice.

Andy86
14-05-15, 21: 27
Non ci siamo capiti. Se lancio il processo a mano sale e funziona benissimo.
Il problema è che non riesco a lanciarlo in avvio automatico perché va lanciato con sudo.

/etc/init.d non c'entra niente, anche perché, sempre che ho capito bene, non c'è più da quando c'è systemd.

Per cui ho creato il file .service con il mio comando personalizzato, l'ho abilitato con systemctl, ma quando lo avvio non succede nulla.

pierino_89
14-05-15, 21: 54
Non ci siamo capiti. Se lancio il processo a mano sale e funziona benissimo.
Il problema è che non riesco a lanciarlo in avvio automatico perché va lanciato con sudo.
Bene. Lo lanci semplicemente con "sudo proftpd"?



/etc/init.d non c'entra niente, anche perché, sempre che ho capito bene, non c'è più da quando c'è systemd.
Lo so, ti sto dicendo che i servizi non danno mai errori quando li lanci. Si limitano ad uscire bene o male.



Per cui ho creato il file .service con il mio comando personalizzato, l'ho abilitato con systemctl, ma quando lo avvio non succede nulla.
Ahh vedi che c'era il trucco, l'hai fatto tu il service file :ghgh fai un po' vedere cosa c'è scritto!

Andy86
14-05-15, 22: 20
Bene. Lo lanci semplicemente con "sudo proftpd"?

Sempre con sudo, se no da errore permessi.
Però l'eseguibile si chiama in.proftpd, almeno sulle guide diceva di lanciare quello, e funziona.


fai un po' vedere cosa c'è scritto!

Nel primo post ho detto che ho seguito la procedura indicata nel link, ed era quella.
Il .service l'ho preso pari pari da quel forum, sostituendo il riferimento all'eseguile:


Only registered members can view code.

pierino_89
14-05-15, 22: 37
Mi pare che manchi il tipo. Quando lanci in.proftpd esce subito e va in background o rimane appeso?
E soprattutto, sei sicuro che sia in /sbin e non /usr/sbin? :ghgh

Andy86
14-05-15, 22: 51
Quando lanci in.proftpd esce subito e va in background o rimane appeso?

La prima. :sisi


E soprattutto, sei sicuro che sia in /sbin e non /usr/sbin? :ghgh

A ridagli... e ficcatelo in testa 'sto usr merge.

pierino_89
14-05-15, 23: 09
E che ne so, mica posso ricordarmi tutti voi cosa usate :ghgh
In ogni caso, se esce subito dopo:


If set to forking, it is expected that the process configured with ExecStart= will call fork() as part of its start-up. The parent process is expected to exit when start-up is complete and all communication channels are set up. The child continues to run as the main daemon process. This is the behavior of traditional UNIX daemons. If this setting is used, it is recommended to also use the PIDFile= option, so that systemd can identify the main process of the daemon. systemd will proceed with starting follow-up units as soon as the parent process exits.

In breve, vuole che gli dai un pidfile per sapere dove va a finire il processo. Magari sta già funzionando, solo che ne perde il controllo.

Andy86
14-05-15, 23: 31
Ma devo inventarlo il pid?
Perché quello di "in.proftpd" cambia ogni volta.
Comunque non sta già funzionando, perché finché non lo butto su a mano, "ftp://localhost" non risponde.

pierino_89
14-05-15, 23: 48
Il pidfile, non il pid :ghgh è un file (solitamente in /run) in cui il demone scrive il proprio pid, così sai dove andarlo a cercare. Dovresti trovare un riferimento nel file di configurazione.

Alla peggio nel service file lo lanci con -n e Type=simple, anche se è una porcata.

Andy86
15-05-15, 00: 25
Ho visto che i pidfile in /run sono semplicemente file di testo con un pid scritto dentro.
Ho inserito quell'opzione nel service e poi ho creato il file a cui punta con nano.

Però non cambia nulla, tra l'altro mi sa che il processo non sale proprio, ho lanciato su un altro terminale un while che fa `ps -A | grep ftp` a ripetizione e poi provato ad avviare il servizio e non sputa niente. (altrimenti avviandolo a mano lo sputa appena parte).

Domani provo con il Type.

:notte:

Andy86
10-07-15, 16: 51
:bai


Alla peggio nel service file lo lanci con -n e Type=simple, anche se è una porcata.

Ho provato, pare che funzioni, dopo vedo se parte anche allo start-up.

Che problemi potrei avere rispetto all'uso classico con il demone?

pierino_89
10-07-15, 17: 07
Nessuno, sono modi diversi per fare la stessa cosa. Di solito i demoni si usano con type=forking (il fatto che non fosse specificato il type effettivamente poteva essere la causa del problema :ghgh)

Andy86
10-07-15, 18: 58
:bai

Allora perché hai detto che è una "porcata"? :m:

pierino_89
11-07-15, 03: 05
Perché non si è mai visto un demone che non va in background da solo :tong2