Lanciare script all'avvio

Saluti a tutti,
al lavoro, dove ho un server con la cugina Red Hat, dovrei lanciare uno script all’avvio utilizzando un utente.
Cercando in rete ho trovato che basta aggiungere in coda a /etc/rc.d/rc.local una riga su - utente -c 'path/completo/dello/script.sh mi domandavo però: le istruzioni del programmatore dicono di posizionarsi nella directory cd /path/completo/dello e dopo ./script.sh
se in rc.local metto su - utente -c 'path/completo/dello/script.sh funzionerà ugualmente o lo script potrebbe dare errore non trovando eventuali file presenti nella sua directory?

Lo script non è lunghissimo ma neanche corto, analizzarlo tutto per controllare se invoca file senza tutto il path completo a me ci vorrebbe diverso tempo e non posso neanche spegnere e riaccendere il server diverse volte per testare l’avvio corretto dello script!

Grazie a tutti

Ti potrebbe dare errore se non sono dichiarati i path assoluti nello script stesso.

Questa è l’unica cosa che mi fa pensare, al motivo per cui è indicato che ti devi posizionare nel path dove risiede lo script.
Per ovviare a questo problema la cosa più semplice è creare uno script che esegua quasta procedura, da inserire in “/etc/rc.d/rc.local”.

Esempio:

#!/bin/bash cd /path/completo/dello_script su - utente -c 'script.sh'

In pratica uno script che lancia un altro script :slight_smile:
Grazie

Ma in realtà le soluzioni sono svariate, basta anche aggiungere le linee come seguono in rc.local:

cd /path/completo/dello_script; su - utente -c 'script.sh'

oppure utilizzare il chkconfig per avviare lo script al runlevel 3 o 5, ad esempio:

chkconfig --add nome_script chkconfig --level 35 nome_script on

E questo viene avviato in automatico all’avvio del server al runlevel 3 o 5.