Puncte:0

Executați un script shell vizibil ca sudo la autentificare în directorul principal

drapel jp

Am un script care funcționează bine când îl pun manual în /home/ubuntu directorul și executați-l manual cu drepturile sudo (trebuie rulat din directorul $HOME).

Calea scriptului este:

/home/ubunt/script.sh

..si arata asa

#!/bin/bash
sudo add-apt-repository -y ppa:maas/3.0-next
actualizare sudo apt
sudo apt install -y maas jq markdown nmap traceroute git curl wget zfsutils-linux cloud-image-utils virtinst qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils whois
sudo maas createadmin --nume utilizator ubuntu --parola parola --e-mail [email protected] --ssh-import gh:wt-b
...

Vreau să o fac să ruleze la autentificare (o dată) și trebuie să văd ce se întâmplă (o linie cmd vizuală).

Am verificat deja opțiunile cu /etc/init.d folderul (și, de asemenea, /lib/systemd/system folderul în care activez serviciul prin systemctl), apelând scriptul prin următoarea linie de comandă

#!/bin/bash
gnome-terminal -e '/home/ubuntu/script.sh'

sau fara interfata cmd vizibila

#!/bin/bash
sursa /home/ubuntu/script.sh

de dar nu reușește și instalează doar unele componente.

Vreo idee? Mulțumiri

Puncte:2
drapel cn

Nevoie ciudată, de a instala automat pachetele din nou și din nou automat în timpul autentificării. Cu toate acestea, este posibil să aveți motive întemeiate.

Puteți utiliza „Aplicații de pornire” pentru a porni automat un terminal după conectare, care apoi pornește scriptul.

  1. Schimbați-vă scriptul și eliminați sudo. Veți rula întregul script ca root.
  2. Autostart Gnome Terminal, emulatorul implicit de terminal al desktopului Ubuntu, după cum urmează: gnome-terminal -- sudo <calea-spre-scriptul-tau>

La conectare, terminalul se va lansa și veți vedea solicitarea de a introduce sudo parola. După introducerea parolei, scriptul va rula și ieșirea va apărea în terminal.

Când scriptul s-a terminat, terminalul se va închide. Pentru a preveni acest lucru, puteți adăuga comanda „bash” pentru a menține un shell (și emulatorul de terminal) deschis sau utilizați un prompt precum

citește -rsn1 =p $'Apăsați o tastă pentru a continua\n'
Andy McRae avatar
drapel jp
Bună, mulțumesc pentru răspuns. Așa că am făcut un fișier sh.desktop unde am introdus codul [Desktop Entry] Tip=Aplicație Exec="/home/ubuntu/script.sh" Ascuns=fals NoDisplay=fals X-GNOME-Autostart-enabled=adevărat Nume[en_IN]=Maas Nume=MaasSetup Comentariu[en_IN]=Maas Comentariu=MaasSetup și mă deconectam și ne autentificăm din nou, dar acest lucru nu face nimic. Am verificat căile și sunt corecte. Cred că sarcinile de pornire funcționează numai cu fișiere .desktop și nu cu fișiere sh, corect? Salutari
vanadium avatar
drapel cn
Puteți lansa „Aplicații de pornire” pentru a adăuga o comandă de pornire. Asta într-adevăr va crea un lansator .desktop în folderul autostart. În ceea ce privește comanda necesară, recitiți cu atenție răspunsul meu.
Andy McRae avatar
drapel jp
Mulțumiri. Dacă aș putea obține un degetul mare în sus, ar fi grozav.
Puncte:0
drapel jp

Bine, deci am găsit o soluție cu sarcina de pornire menționată de vanadium.

Dar m-am gândit că o voi face puțin mai explicită.

Eu folosesc 3 fisiere:

Două sunt situate în /home/ubuntu/ pliant

  1. /home/ubuntu/init.sh

Și care conține

#!/bin/bash
gnome-terminal -- sudo '/home/ubuntu/script.sh'
  1. /home/ubuntu/script.sh

care conține codul real pe care vreau să-l execut

#!/bin/bash
sudo add-apt-repository -y ppa:maas/3.0-next
actualizare sudo apt
sudo apt install -y maas jq markdown nmap traceroute git curl wget zfsutils-linux cloud-image-utils virtinst qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils whois
sudo maas createadmin --nume utilizator ubuntu --parola parola --e-mail [email protected] --ssh-import gh:wt-b

...

Și apoi trebuie să activăm o aplicație de pornire punând un fișier de configurare în fișierul /etc/xdg/autostart pliant 3) /etc/xdg/autostart/conf.desktop

Care conține următoarele informații:

[Intrare pe desktop]
Versiunea=1.0
Nume=LordofSpaghettis
Comentariu=Spaghetele sunt bune
Exec=/home/ubuntu/init.sh
Cale=/home/ubuntu/
Terminal=adevarat
Tip=Aplicație
X-GNOME-Autostart-enabled=adevărat
Categorii=Utilitate;Dezvoltare

Apoi, când repornesc mașina de deconectare și mă autent din nou, primesc o solicitare pentru a cere parola sudo.Și apoi totul funcționează bine. Mulțumesc lui vanadium pentru ajutor.

raj avatar
drapel cn
raj
Nu trebuie să creați manual fișiere la pasul 3). După cum a spus @vanadium, deschideți „Aplicații de pornire” din Instrumentele de sistem și adăugați `/home/ubuntu/init.sh` la lista de programe care pornesc automat cu sesiune. Cu toate acestea, deoarece ați făcut deja acest lucru manual, nu este nevoie să faceți acest lucru din nou :)
Andy McRae avatar
drapel jp
De fapt, trebuie să o fac așa, deoarece este o parte a unui proces de automatizare în care implementăm mai multe mașini. Și nu pot porni fișierul script.sh direct din fișierul .desktop, deoarece fișierul .desktop aparent nu poate porni direct gnome-desktop. sper ca ajuta

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.