[Risolto] Eseguire programma su tty2 Ubuntu 20.04
-
- Prode Principiante
- Messaggi: 6
- Iscrizione: martedì 6 luglio 2021, 17:40
- Sesso: Maschile
[Risolto] Eseguire programma su tty2 Ubuntu 20.04
Buongiorno a tutti e grazie di avermi ammesso (dopo l'ultima volta 10 anni fa ) su questo splendido forum!
La domanda è lievemente articolata...
Sto svolgendo un tirocinio e abbiamo installato ubuntu 20.04 (ovviamente in modalità testuale) su una minipc che va a rilevare quelle che sono le falle di sicurezza.
Ho scritto uno script bash che va a sostituire il file issue ad ogni accensione indicando i parametri di rete (ip pubblico/privato, dns ecc...).
Ora io vorrei, invece che avere un testo passivo che cambia ad ogni riavvio, poter sostituire la login del tty2 con questo script (devo fare qualche piccola modifica ma per il resto resterebbe uguale) in modo da avere un terminale che mi elenca i parametri di rete aggiornando ogni 5 minuti.
Nelle versioni precedenti di Ubuntu era una cosa fattibile, e ho anche trovato questa guida: https://raymii.org/s/tutorials/Run_soft ... getty.html
Purtroppo questa guida non è aggiornata e non va bene per Ubuntu 20.04...
Qualcuno ha idea di come fare a sostituire SOLO la login del terminale tty2 con uno script (fondamentalmente è un ciclo while con uno sleep all'interno).
Grazie in anticipo per il supporto.
La domanda è lievemente articolata...
Sto svolgendo un tirocinio e abbiamo installato ubuntu 20.04 (ovviamente in modalità testuale) su una minipc che va a rilevare quelle che sono le falle di sicurezza.
Ho scritto uno script bash che va a sostituire il file issue ad ogni accensione indicando i parametri di rete (ip pubblico/privato, dns ecc...).
Ora io vorrei, invece che avere un testo passivo che cambia ad ogni riavvio, poter sostituire la login del tty2 con questo script (devo fare qualche piccola modifica ma per il resto resterebbe uguale) in modo da avere un terminale che mi elenca i parametri di rete aggiornando ogni 5 minuti.
Nelle versioni precedenti di Ubuntu era una cosa fattibile, e ho anche trovato questa guida: https://raymii.org/s/tutorials/Run_soft ... getty.html
Purtroppo questa guida non è aggiornata e non va bene per Ubuntu 20.04...
Qualcuno ha idea di come fare a sostituire SOLO la login del terminale tty2 con uno script (fondamentalmente è un ciclo while con uno sleep all'interno).
Grazie in anticipo per il supporto.
Ultima modifica di matteandroid il domenica 11 luglio 2021, 10:51, modificato 1 volta in totale.
-
- Imperturbabile Insigne
- Messaggi: 2842
- Iscrizione: domenica 11 maggio 2008, 18:03
- Desktop: plasma
- Distribuzione: 22.04
- Località: Palermo
Re: Eseguire programma su tty2 Ubuntu 20.04
Seguendo la parte del tuo link relativa a systemd , con Ubuntu 20.04 non ho avuto problemi ad avere uno script in esecuzione senza login su tty2
-
- Prode Principiante
- Messaggi: 6
- Iscrizione: martedì 6 luglio 2021, 17:40
- Sesso: Maschile
Re: Eseguire programma su tty2 Ubuntu 20.04
Se posso chiedere, hai eseguito esattamente lo stesso script della guida? perchè il mio sarebbe un ciclo while che si conclude leggendo una variabile da tastiera, e per adesso non mi funziona...
-
- Imperturbabile Insigne
- Messaggi: 2842
- Iscrizione: domenica 11 maggio 2008, 18:03
- Desktop: plasma
- Distribuzione: 22.04
- Località: Palermo
Re: Eseguire programma su tty2 Ubuntu 20.04
Ciao
Mi era parso che la guida usasse htop e/o altre applicazioni che io non ho installate per cui avevo messo in esecuzione uno script corrispondente alla richiesta iniziale:
Appena possibile provo con uno script più interattivo e ti faccio sapere
Mi era parso che la guida usasse htop e/o altre applicazioni che io non ho installate per cui avevo messo in esecuzione uno script corrispondente alla richiesta iniziale:
quello che posso dire é che dalla tastiera lo script riceveva un eventuale SIGINT (e veniva subito ri-eseguito).fondamentalmente è un ciclo while con uno sleep all'interno
Appena possibile provo con uno script più interattivo e ti faccio sapere
-
- Prode Principiante
- Messaggi: 6
- Iscrizione: martedì 6 luglio 2021, 17:40
- Sesso: Maschile
Re: Eseguire programma su tty2 Ubuntu 20.04
Grazie mille, in ogni caso ti allego il mio script, inizialmente mi andava, ma dopo due riavvii ha smesso di funzionare... probabilmente è scritto male, sono un elettronico non un informatico . In pratica dovrebbe leggermi tutte le informazioni di rete prima del login e tenermele sempre aggiornate sul tty1, mentre non deve alterare la possibilità di lavorare sugli altri terminali.
- LO SCRIPT Custom_issue.sh:
- Il file Override.conf (messo nella cartella getty@tty1.service.d):
- LO SCRIPT Custom_issue.sh:
Codice: Seleziona tutto
#!/bin/sh
#Now we find all the network parameters regardless of the connection status
PREFIX="WELCOME!"
while true
do
IF_NAME=$(netstat -r 2>/dev/null | grep -m 1 default | awk '{print $8}')
IP_PUBLIC_T=$(dig +short myip.opendns.com @resolver1.opendns.com)
DNS_T=$(nmcli device show | grep IP4.DNS | awk '{print $NF}' | sed 'N;s/\n/,/')
GATEWAY_T=$(netstat -rn | grep ${IF_NAME} | grep 'UG[ \t]' | awk '{print $2}')
LO=$(nmcli dev show lo | grep IP4.ADDRESS | sed 's/\s\s*/\t/g' | sed '2d' | cut -f 2)
#With this cascade of "if" command, the script , in case of null exit from the previous command (and so in case of null variables), print the string "not found", in this way we indicate the failure of the previous calculation. In this way we can see which parameter have been found and which not.
if [ -n "$IP_PUBLIC_T" ]
then
IP_PUBLIC="$IP_PUBLIC_T"
else
IP_PUBLIC="Not found"
fi
if [ -n "$DNS_T" ]
then
DNS="$DNS_T"
else
DNS="Not found"
fi
if [ -n "$GATEWAY_T" ]
then
GATEWAY="$GATEWAY_T"
else
GATEWAY="Not found"
fi
#Now we print the obtained results:
echo "$PREFIX\n\PRIVATE IP ADDRESS:\n$LO\n\nPUBLIC IP ADDRESS:\n$IP_PUBLIC\n\nDNS: \n$DNS\n\nGATEWAY:\n$GATEWAY\n\n"
echo "Le informazioni si aggiornano ogni 2 minuti"
sleep 120
done
Codice: Seleziona tutto
[Service]
ExecStart=
ExecStart=-/usr/bin/Custom_issue.sh
StandardInput=tty
StandardOutput=tty
Ultima modifica di matteandroid il sabato 10 luglio 2021, 13:09, modificato 1 volta in totale.
-
- Imperturbabile Insigne
- Messaggi: 2842
- Iscrizione: domenica 11 maggio 2008, 18:03
- Desktop: plasma
- Distribuzione: 22.04
- Località: Palermo
Re: Eseguire programma su tty2 Ubuntu 20.04
verifica che il nome della cartella sia coerente col terminale che devi usare. Nella 20.04 tty1 é in genere impegnato come default desktopIl file Override.conf (messo nella cartella getty@tty1.service.d):
-
- Prode Principiante
- Messaggi: 6
- Iscrizione: martedì 6 luglio 2021, 17:40
- Sesso: Maschile
Re: Eseguire programma su tty2 Ubuntu 20.04
Ho provato a metterlo nella cartella (che ho creato io) getty@tty2.service.d, e fa la stessa cosa, non mi arriva alla login dal tty2 (che va bene! è quello che vorrei), ma non mi fa partire lo script. Probabilmente ho scritto qualcosa che lo fa incazzare in Custom_issue.sh...
- giulux
- Amministratore
- Messaggi: 25422
- Iscrizione: domenica 10 gennaio 2010, 12:17
- Desktop: ubuntu 18.04
- Distribuzione: Ubuntu 18.04.3 LTS x86_64
- Sesso: Maschile
- Località: Roma
Re: Eseguire programma su tty2 Ubuntu 20.04
@matteandroid Inseriti come hai fatto i listati rendono il post troppo lungo e di difficile lettura.
In futuro incollali tra i tag [ code] e [ /code] che si creano cliccando su </> in alto, sopra la finestra di scrittura (editor completo) così:
Ciao
In futuro incollali tra i tag [ code] e [ /code] che si creano cliccando su </> in alto, sopra la finestra di scrittura (editor completo) così:
- [ code]listato
da postare[ /code]
Ciao
"Non è una segno di buona salute l'essere ben adattato ad una società malata". (Jiddu Krishnarmurti)
-
- Prode Principiante
- Messaggi: 6
- Iscrizione: martedì 6 luglio 2021, 17:40
- Sesso: Maschile
Re: Eseguire programma su tty2 Ubuntu 20.04
Scusami, mi stavo infatti chiedendo come faceste a farlo all'interno delle casellegiulux ha scritto: ↑sabato 10 luglio 2021, 13:03@matteandroid Inseriti come hai fatto i listati rendono il post troppo lungo e di difficile lettura.
In futuro incollali tra i tag [ code] e [ /code] che si creano cliccando su </> in alto, sopra la finestra di scrittura (editor completo) così:Correggi il post precedente cliccando sull'icona con matita, poi seleziona il listato, clicca su </> e salva
- [ code]listato
da postare[ /code]
Ciao
Grazie della dritta. In ogni caso ho provato a cambiare codice, mettendo un while infinito che stampa una stringa e funziona, quindi suppongo che sia un problema del file sh che ho postato...
Hai qualche idea su cosa possa essere? Alla fine deve solo stampare delle variabili testuali.
-
- Prode Principiante
- Messaggi: 6
- Iscrizione: martedì 6 luglio 2021, 17:40
- Sesso: Maschile
Re: Eseguire programma su tty2 Ubuntu 20.04
(C'era una spaziatura sbagliata nello script)
Vi scrivo qui una guida per chi fosse interessato ad eseguire script al posto della login (io lo uso su ubuntu 20.04 in modalità testuale)
1) Scrivete il vostro script, nel mio caso voglio che sul tty2 vengano mostrate le informazioni relative a DNS, IP pubblico e privato, Gateway, ho quindi scritto questo script bash:
2) Loggatevi come root (comando su + password di root) e spostate il vostro script nella cartella /usr/bin
rendetelo poi eseguibile con il comando:
3) Dirigetevi nella cartella /systemd/system e create la cartella getty@tty2.service.d
4) Dirigetevi nella cartella appena creata e create il file "override.conf" con il comando
all'interno di questo file dovrete scrivere il seguente testo:
(ho reso eseguibile anche il file override.conf, ma non sono sicuro che sia necessario)
5) Date quindi i seguenti comandi:
Adesso premendo ctrl-alt-f2 dovreste vedere il vostro script al posto della login, senza toccare minimamente gli altri terminali.
Se notate errori scrivetemi che almeno correggo. Grazie del supporto!
Vi scrivo qui una guida per chi fosse interessato ad eseguire script al posto della login (io lo uso su ubuntu 20.04 in modalità testuale)
1) Scrivete il vostro script, nel mio caso voglio che sul tty2 vengano mostrate le informazioni relative a DNS, IP pubblico e privato, Gateway, ho quindi scritto questo script bash:
Codice: Seleziona tutto
#!/bin/sh
PREFIX="NETWORK INFORMATION"
while true
do
IF_NAME=$(netstat -r 2>/dev/null | grep -m 1 default | awk '{print $8}')
IP_PUBLIC_T=$(dig +short myip.opendns.com @resolver1.opendns.com)
DNS_T=$(nmcli device show | grep IP4.DNS | awk '{print $NF}' | sed 'N;s/\n/,/')
GATEWAY_T=$(netstat -rn | grep ${IF_NAME} | grep 'UG[ \t]' | awk '{print $2}')
LO=$(nmcli dev show lo | grep IP4.ADDRESS | sed 's/\s\s*/\t/g' | sed '2d' | cut -f 2)
if [ -n "$IP_PUBLIC_T" ]
then
IP_PUBLIC="$IP_PUBLIC_T"
else
IP_PUBLIC="Not found"
fi
if [ -n "$DNS_T" ]
then
DNS="$DNS_T"
else
DNS="Not found"
fi
if [ -n "$GATEWAY_T" ]
then
GATEWAY="$GATEWAY_T"
else
GATEWAY="Not found"
fi
echo "$PREFIX\n\PRIVATE IP ADDRESS:\n$LO\n\nPUBLIC IP ADDRESS:\n$IP_PUBLIC\n\nDNS: \n$DNS\n\nGATEWAY:\n$GATEWAY\n\n"
echo "Network parameters are refreshed every 2 minutes, use another terminal to login."
sleep 120
clear
done
Codice: Seleziona tutto
cp /cartelladelloscript/nomescript.sh /usr/bin
Codice: Seleziona tutto
chmod +x /usr/bin/nomescript.sh
Codice: Seleziona tutto
cd /etc/systemd/system; mkdir getty@tty2.service.d
Codice: Seleziona tutto
cd /etc/systemd/system/getty@tty2.service.d; nano override.conf
Codice: Seleziona tutto
[Service]
ExecStart=
ExecStart=-/usr/bin/nomescript.sh
StandardInput=tty
StandardOutput=tty
5) Date quindi i seguenti comandi:
Codice: Seleziona tutto
systemctl daemon-reload; systemctl restart getty@tty2.service
Se notate errori scrivetemi che almeno correggo. Grazie del supporto!
Ultima modifica di matteandroid il domenica 11 luglio 2021, 10:51, modificato 1 volta in totale.
- trekfan1
- Moderatore Globale
- Messaggi: 23381
- Iscrizione: domenica 21 maggio 2006, 10:51
- Desktop: Gnome
- Distribuzione: Ubuntu 23.10 e 24.04 (dev)
- Sesso: Maschile
- Località: Formigine (MO) | Accecante Asceta
Re: Eseguire programma su tty2 Ubuntu 20.04
Il [Risolto] va messo all'inizio del titolo del PRIMO post cliccando sulla matita ed evitando di scriverlo tutto maiuscolo, grazie
Regolamento del Forum Il forum di StarTrek in italia Gruppo Seti Script per il [Risolto] Rufus Multiboot Linux/Linux Seriale Win8/8.1/10 da Linux PPA amule 20.04
Da Regolamento è VIETATO chiedere supporto con i messaggi privati!!
Da Regolamento è VIETATO chiedere supporto con i messaggi privati!!
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti