Gå til innhold

setenv mangler i Solaris 7


Anbefalte innlegg

Dette er ikke Linux, men det går vel bra...

 

Skal installere Tomcat server på en Sun Utlra-Sparc med Solaris 7, og må legge til en "environment variable" for å få dette til. Variablen skal hete JAVA_HOME og ha verdien /usr/java. Har har prøvd å finne ut hvordan dette skal gjøres, og har funnet to måter å gjøre dette på:

 

1. setenv JAVA_HOME /usr/java

2. set JAVA_HOME="/usr/java"

export JAVA_HOME

 

Metode 1 fungerer ikke da "shellet" ikke kan finne kommandoen setenv

 

Metode 2 gir ingen feilmelding, men fungerer likevel ikke. JAVA_HOME dukker ikke opp når jeg skriver "env" i "shellet". Og når jeg ser på verdien til $JAVA_HOME er den tom.

 

Er det noen som kan hjelpe meg med dette?

Lenke til kommentar
Videoannonse
Annonse

Fant ut litt til...

 

Hvis jeg først skriver "csh" (C shell?) får jeg tilgang til "setenv" og får lagt til JAVA_HOME. Problemet er nå at denne JAVA_HOME bare gjelder inne i det konsoll vinduet som jeg brukte "setenv".

 

Noen som vet hvordan jeg får den global, og får maskinen til å "huske" den etter restart?

Lenke til kommentar

Quote:


igorsanches skrev (2002-08-14 13:17):

Fant ut litt til...


Hvis jeg først skriver "csh" (C shell?) får jeg tilgang til "setenv" og får lagt til JAVA_HOME. Problemet er nå at denne JAVA_HOME bare gjelder inne i det konsoll vinduet som jeg brukte "setenv".


Noen som vet hvordan jeg får den global, og får maskinen til å "huske" den etter restart?


 

Hva slags shell er ditt (eller brukeren som skal kjøre Tomcat) innloggingshell? Dette kan du se i /etc/passwd på flere *NIX varianter (har ikke erfaring med Sun).

 

Hvis det er bash kan du skrive: export JAVA_HOME=/sti/til/java. For å sette dette automatisk for den gjeldende brukeren (muligens root), kan du legge dette i brukerens .bash_profile:

Java_home=/sti/til/java export JAVA_HOME

 

Håper dette hjelper

Lenke til kommentar

Takk for svar

 

Kikka i /etc/passwd for root brukeren og der stod det: sbin/sh.

 

Prøvde metoden din ved å først skrive "bash" og så export kommandoen. JAVA_HOME ble da registrert i det ene konsollvinduet, men ikke i andre vinduer.

 

Jeg klarer nå å få startet Tomcat så lenge jeg setter JAVA_HOME i et konsollvindu og starter Tomcat i det samme vinduet. Men det som er litt viktig for meg er at oppstarten av Tomcat skal skje når maskinen booter, gjerne før noen brukere logger seg på. Og JAVA_HOME må være registrert før Tomcat kan startes.

 

Regner med det burde være mulig med Unix?

Lenke til kommentar

Quote:


igorsanches skrev (2002-08-15 13:11):

Takk for svar


Kikka i /etc/passwd for root brukeren og der stod det: sbin/sh.


Prøvde metoden din ved å først skrive "bash" og så export kommandoen. JAVA_HOME ble da registrert i det ene konsollvinduet, men ikke i andre vinduer.


Jeg klarer nå å få startet Tomcat så lenge jeg setter JAVA_HOME i et konsollvindu og starter Tomcat i det samme vinduet. Men det som er litt viktig for meg er at oppstarten av Tomcat skal skje når maskinen booter, gjerne før noen brukere logger seg på. Og JAVA_HOME må være registrert før Tomcat kan startes.


Regner med det burde være mulig med Unix?


 

Jada, det er mulig. Ofte er /bin/sh en symlink til et annet shell, men jeg har ikke peiling på hva som er default shell på Solaris. Forsøk "man sh" for å få litt info om shellet ditt. Forsøk å legg innholdet i .bash_profile nevt i forrige post, i /root/.profile, og log inn på nytt.

 

Automatisk oppstart av Tomcat har jeg ikke peiling på. Det følger med startup skrip med Tomcat, men jeg aner ikke hvor de skal ligge for at de eksekveres ved boot. På FreeBSD vil de ligge i /usr/local/etc/rc.d/

 

Håper du kommer litt videre.

Lenke til kommentar

I Solaris ligger filene på følgende sted:

 

Scripts i /etc/init.d

 

Symlinker til scripts pr runlevel i /etc/rc0.d , /etc/rc1.d osv...

 

Disse scriptene blir altså utført når man booter, eller rettere sagt når man går inn i en bestemt runlevel (f.eks er runlevel 5 den mest komplette med X11 og hele sulamitten)

 

 

Hvis man derimot er interessert i å starte programmer når en bestemt bruker logger inn, er .bashrc og .bash_profile i rota på brukerns hjemmeområde stedet å legge ting. Forskjellen er vel at bash_profile bare blir utført én gang under oppstart av login-shellet, mens .bashrc blir utført hvert gang man starter opp et shell. Eller var det omvendt? :smile:

Lenke til kommentar

Quote:


Den 2002-08-15 20:07, Dan Hansen skrev:

Kanskje du burde vurdere Windows? Mye lettere der :razz:


Egentlig mer rot i windows, med tanke på hvor mange steder man kan legge inn auto-starting av programmer:

 

windows.ini

oppstart/startup-katalogen

registeret (flere steder i registeret faktisk)

 

Pluss gamlemåten:

 

autoexec.bat

 

 

De 2 måten jeg beskrev i posten over for hvordan slikt gjøres i unix, er totalt forskjellig fordi den ene er på systemnivå og den andre på brukernivå.

 

 

Pluss at windows har ikke runlevels, som er veldig praktisk. Så blæh :razz:

Lenke til kommentar

Hei,

 

det er en mulighet å endre på hvilket shell du skal bruke i /etc/passwd.

 

Der står det default for

root-bruker: "root:x:0:1:Super-User:/:/sbin/sh"

 

Der kan du forandre "/sbin/sh" til det shellet du måtte ønske...MEN, vær obs...de andre shellene (bash, csh, ksh, etc) ligger IKKE under "/sbin". De ligger mest sansynlig under "/usr/bin"

 

Så, hvis du skal endre f.eks. til "bash" så må du endre setninga i "/etc/passwd" slik:

 

"root:x:0:1:Super-User:/:/usr/bin/bash"

 

(OBS...ikke bruk anførselstegn slik jeg har gjort her).

 

Dette kan du gjøre for spesifikt for alle brukere som er opprettet...

 

Håper dette hjelper!

 

PunkerGompen

Lenke til kommentar

Først å fremst, måten å gjøre det med sh shellet er:

 

JAVA_HOME=/usr/java

export JAVA_HOME

 

For det andre, så er det veldig greit å ha

et shell som ikke bruker dynamiske eller delte objekter

i tilfellet du kommer til å slette eller ødelegge lib katalogen. Mao. /usr/bin/bash er en dårlig ide.

 

"Normalt" burde alt på /sbin være statisk bygd slik at man

har verktøy som virker hvis lib blir borte men desverre

er det ikke alltid sånn i dag. Du kan sjekke dette med

kommandoen ldd <fil> om du vil.

 

Videre så er det en ide å legge JAVA_HOME in i start skriptet til tomcat, pluss eventuellt andre start skript om du skulle trenge det.

 

_________________

Want an orange ?

 

[ Denne Melding var redigert av: nakor på 2002-08-15 22:51 ]

Lenke til kommentar

Takk for alle svar!

 

Jeg la inn JAVA_HOME i startup.sh til Tomcat som nakor sa. Deretter laget jeg et script som ligger i /etc/rc3.d som kjører startup.sh scriptet til Tomcat. Ser ut til at dette skal fungere men jeg kan ikke restarte maskinen for å teste før serveren ikke er i bruk.

 

 

Tviler Windows funker på en 64bit Ultra-Sparc Dan Hansen :razz:

Lenke til kommentar

Quote:


Langbein skrev (2002-08-15 20:01):

Forskjellen er vel at bash_profile bare blir utført én gang under oppstart av login-shellet, mens .bashrc blir utført hvert gang man starter opp et shell. Eller var det omvendt? :smile:


Neida, det er riktig..

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...