Puncte:0

TigerVNC oferă ecran negru atunci când este pornit prin script

drapel mm

ÎNTREBARE

Am instalat software-ul server TigerVNC pe o mașină invitată Ubuntu 18.04 care rulează în VMware Workstation.

Pot VNC în (adică să folosesc un vizualizator VNC pentru a vedea) mașina oaspete foarte bine după ce am executat manual următoarea linie fie în Terminal, fie în Xterm (a mașinii invitate):

vncserver :1 -localhost nu -geometry 980x700 -adâncime 32

Dar rularea aceleiași linii într-un script, după cum urmează, îmi oferă doar un ecran negru pe vizualizatorul VNC cu un punct pentru un cursor.

#!/bin/bash
vncserver :1 -localhost nu -geometry 980x700 -adâncime 32

Ce ar trebui să fac scriptului pentru ca acesta să funcționeze (dați-mi un ecran VNC adecvat)?

FUNDAL

Sunt nou atât pe Ubuntu, cât și pe acest site. Dacă omit informații relevante, vă rog să-mi spuneți despre ce este vorba și voi actualiza întrebarea cu ea. Deocamdată, mă pot gândi la următoarele.

Nu toate scripturile îmi dau o problemă. De exemplu, folosesc foarte bine următoarele (pentru a monta în invitatul Ubuntu un folder partajat al unei mașini Windows).

#!/bin/bash
sudo mount -t cifs -o username=tom,uid=1000,gid=1000 //192.168.0.17/d /home/loom/mnt/summer_d

Următoarele (destinate să monteze un hard disk) eșuează totuși și trebuie să execut manual sudo linie în Terminal sau Xterm.

#!/bin/bash
sudo mount /dev/sdb1 /home/loom/hdd/hdd5 -o uid=1000,gid=1000,utf8,dmask=027,fmask=137

Când execut manual, fac acest lucru din același director în care se află scripturile; deci asta nu pare a fi o problema.

Când fac dublu clic pe script, acesta se încarcă în Xterm.

Alergare echo $SHELL fie în Terminal, fie în Xterm îmi oferă /bin/bash.

După cum puteți vedea, am o problemă generală: scripturile nu funcționează în mod fiabil.

Deoarece văd linia she-bang a scriptului ca furnizează celelalte linii către un anumit shell și celelalte linii ca introducând ceea ce aș putea avea manual, nu văd de ce aceeași linie ar trebui să funcționeze sau nu, în funcție de modul în care sunt. introdus (manual sau printr-un script).

Un răspuns grozav mi-ar arăta cum să rezolv problema specifică cu VNC și să ofere o explicație generală a ceea ce aș putea face greșit în aceste scripturi. Mulțumiri.

Puncte:1
drapel us

unde ai pus scripturile in discutie? Acestea trebuie să fie într-un director care face parte din variabilele de mediu $PATH ale mașinii dumneavoastră. Îl puteți găsi cu această comandă

 echo $PATH

care ar trebui să returneze așa ceva

echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

iar dacă se află într-unul dintre aceste foldere, ar trebui să verificați și dacă scripturile dumneavoastră sunt executabile.

Dacă nu este cazul, trebuie să vă mutați în folder, deschideți terminalul și lansați

sudo chmod +x script_name
Catomic avatar
drapel mm
Mulțumiri. Am incercat. Nu pot muta sau copia niciun script în niciun director din $PATH. Poate trebuie să obțin permisiunea sau să încerc ca superutilizator? Oricum, există multe scripturi în locația actuală care funcționează bine. Cum pot funcționa fără a fi într-un director $PATH?
lejurassien avatar
drapel us
`sudo mv /the_script /the_destination` și, de asemenea, verificați dacă sunt executabile, precum și utilizatorul și grupul.
lejurassien avatar
drapel us
Optez pentru o altă soluție pentru a lansa x11vnc. Folosind meniul aplicației la pornire și adăugarea pornirii x11vnc cu aceasta [Imgur1](https://i.imgur.com/NcONDOR.jpg) [Imgur2](https://i.imgur.com/u9uYJ9i.jpg) și asigurați-vă că sesiunea nu se blochează altfel există un ecran negru cu un punct, care îmi amintește de problema dvs., uitați-vă cu atenție că sesiunea dvs. nu se blochează
Catomic avatar
drapel mm
Am făcut cele două lucruri (`mv` la o locație $PATH și `chmod`), iar rezultatul este: scriptul de montare pe hard disk funcționează, dar scriptul VNC îmi dă în continuare un ecran negru. Răspunsul tău este foarte valoros pentru mine din cauza primului scenariu. Mulțumiri. Voi posta o altă întrebare despre cum să includ un director în $PATH (pentru a servi ca depozit pentru scripturi) și dacă aș putea seta directorul astfel încât orice script pe care îl creez în el să aibă deja starea `chmod +w`. Poate că veți fi interesat și de noua întrebare.
lejurassien avatar
drapel us
Ne pare rău pentru întârziere, așa că pentru a adăuga un director în $PATH, rulați această comandă `export PATH=/home/catomic/work:$PATH`, desigur, adresa poate fi orice doriți /bin/my-scripts, ceea ce ar da `export PATH=/bin/my-scripts:$PATH` Și în mod normal scripturile pe care le veți pune în acest director vor fi executabile atâta timp cât aveți drepturi bune pentru director și pentru scripturi. Sper că asta îmi întrebi engleza mea este atât de rea
lejurassien avatar
drapel us
Dar mai există un lucru, nu este permanent, adică la repornire calea adăugată va fi dispărut, astfel încât să devină permanentă odată ce testele sunt concludente este necesar să editați .bashrc sau .profile. Ți-am pus un link care explică toate acestea și în limba ta https://www.howtogeek.com/658904/how-to-add-a-directory-to-your-path-in-linux/

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.