Anzeige:
Ergebnis 1 bis 6 von 6

Thema: probleme mit Variablen setzen und crontab

  1. #1
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Wien
    Beiträge
    308

    Question probleme mit Variablen setzen und crontab

    Tja ich hab da ein kleines aber nerviges problem mit ein paar Variablen.
    Ich hab vor einem Monat Java auf meinem System installiert da ich es für ein newsgroup reader gebraucht habe welcher ein Webinterface hat. Nun hatte ich Probleme mit den Variablen:
    JAVA_HOME=/usr/local/j2re1.4.2_08/
    PATH=$PATH:/usr/local/j2re1.4.2_08/bin

    Also hab ich wie im Tutorial aus diesem Forum über Java diese beiden Variablen in ~/.bashrc hinzugefügt mittels:
    export JAVA_HOME=/usr/local/j2re1.4.2_08/
    export PATH=$PATH:/usr/local/j2re1.4.2_08/bin

    Nun beim root hat das auch funktioniert, aber bei meinem user den ich habe hat das nicht so hingehaut. ich musste jedesmal die Variablen per Hand hinzufügen weil er diese anscheinend nicht ovn .bashrc übernommen hat.
    Also hab ich dann die Variablen Systemweit installiert indem ich diese 2 Zeilen in /etc/profiles hinzugefügt habe. Somit hab ich mir gedacht ist das Problem gelöst.

    nun wollte ich das sich der Newsreader automatisch mittels crontab jeden Tag startet. Das Programm lässt sich über ein Shell Script starteten. Ich hab also mal zu testzwecke über meinen User Account mittels "crontab -e" die zeile hinzugefügt: "* * * * * /pfad/zum/script.sh"
    Nun bekam ich dann per system mail das er die Variablen nicht finde konnte bzw das er Java nicht finden konnte.
    Dann ist mir aufgefallen das in /etc/crontab die Variable "PATH" auch extra definiert wird. Ich weiss zwar nicht wieso das so ist, aber ich hab dann versucht bei der Variable PATH in /etc/crontab den Javapfad auch hinzuzufügen, aber das hat auch nichts geholfen. könnt ihr mir da igendwie helfen?

  2. #2
    Freidenker Avatar von suck
    Registriert seit
    Nov 2004
    Ort
    Abgrund + 1 Schritt
    Beiträge
    2.433
    Du könntest die Variablendefinitionen in den Aufruf des Progs mithineinnehmen:

    anstatt "/la/la/prog" also "VAR1=lalelu /la/la/prog"

    Ich bin mir nicht sicher, ob das klappt. Sollte es nicht funzen, würde ein Script weiterhelfen, welches dann seinerseits genanntes aufruft - dann würde cron nur das Script aufrufen (erste Zeile des Scripts sollte "#!/bin/sh" sein).

    Gruss..
    int main(){while(alive()){tik();tak();}return 0;}

  3. #3
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Wien
    Beiträge
    308
    hab das versucht, bei crontab gleich die Variablen reinzuhauen, ist aber nicht gegangen dann hab ich ein mini skript geschrieben wo die Variablen wie gesagt auch definiert werden:

    Code:
    #!/bin/sh
    JAVA_HOME=/usr/local/j2re1.4.2_08/
    PATH=$PATH:/usr/local/j2re1.4.2_08/bin
    cd /home/orion/ninan-0.8.1/
    ./ninancore.sh

    aber ich bekomm dann wieder eine mail wo die Fehlermeldung drinsteht das java nicht gefunden wurde.

    ABgesehen davon versteh ich aber auch nicht wieso es nicht einfach geht wenn ich in ~/.bashrc die Variable definier? Theoretisch sollte es ja so funktionieren oder?

  4. #4
    Freidenker Avatar von suck
    Registriert seit
    Nov 2004
    Ort
    Abgrund + 1 Schritt
    Beiträge
    2.433
    Nutze die Syntax "export VAR1="lalelu" damit die Variablen auch an die Kindprozesse weitergegeben werden. Der Aufruf von "./ninancore.sh" startet nämlich eine neue Shell.
    int main(){while(alive()){tik();tak();}return 0;}

  5. #5
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Wien
    Beiträge
    308
    ah, verstehe. Jetzt funktioniert es auch über crontab.
    Aber ich frag mich noch immer wieso die Variable nicht über .bashrc definiert wird?!

  6. #6
    Freidenker Avatar von suck
    Registriert seit
    Nov 2004
    Ort
    Abgrund + 1 Schritt
    Beiträge
    2.433
    "man bash" sagt mitunter: When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists.

    Wenn dein System "ordentlich" eingerichtet ist, handelt es sich bei dir um eine Login-Shell. Deshalb wird die .bashrc nicht gelesen. /etc/profile könte helfen! ..aber cron interessiert glaub(!) ich keine der Dateien! (es kommt drauf an, wie bzw. woraus es gestartet wird)
    int main(){while(alive()){tik();tak();}return 0;}

Ähnliche Themen

  1. Probleme mit Subversion
    Von Jehowa im Forum Linux als Server
    Antworten: 2
    Letzter Beitrag: 02.08.05, 11:26
  2. Hast Du gern Probleme arbeit mit Suse einfach daheeme
    Von PanTau69 im Forum Meldungen und Mitglieder
    Antworten: 8
    Letzter Beitrag: 23.11.04, 22:14
  3. Probleme beim compilieren eines kleines programms
    Von mm-motm im Forum Anwendungen Allgemein, Software
    Antworten: 1
    Letzter Beitrag: 22.11.04, 16:48
  4. Probleme über Probleme
    Von Crashmaster im Forum Windowmanager
    Antworten: 8
    Letzter Beitrag: 26.02.03, 21:50
  5. tmake Variablen setzen
    Von TheGilb im Forum System installieren und konfigurieren
    Antworten: 2
    Letzter Beitrag: 25.10.01, 21:26

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •