Hallo!
Ich habe ein Problem und hoffe sehr, dass mir jemand helfen kann.
Ich habe ein Java-Programm geschrieben, das ich bei jedem Systemstart über die rc.local starte. Allerdings wird es nur bei jedem 2. oder 3. Systemstart geladen!
Mein Programm schreibt logfiles in /var/www/logs/ . Manchmal manchmal geht das auch und alles ist gut. Aber manchmal kann er dort nicht schreiben:
berta@berta:~$ java -jar shutdownServer.jar java.io.FileNotFoundException: /var/www/logs/MeineLogDatei.log (Permission denied) log4j:WARN No appenders could be found for logger (StatusThread). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. log4j:WARN No appenders could be found for logger (Server). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Dann bricht das komplette Programm ab.
Die Frage ist, warum kann er die Logfiles manchmal anlegen und manchmal nicht?
Hier meine rc.local:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | GNU nano 2.2.6 Datei: rc.local #!/bin/sh # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # wake on lan #ethtool -s eth0 wol g /bin/sleep 10 /usr/bin/java -jar /home/berta/shutdownServer.jar exec >/home/berta/log echo "trying to start shutdownserver" [ -x /usr/bin/java -jar /home/berta/shutdownServer.jar ] && echo "shutdownServer seems to be not executable in this environment but lets try" ( exec /usr/bin/java -jar /home/berta/shutdownServer.jar ; ) & exec >/dev/stdout exit 0 |
die Logfile, die von der rc.local erzeugt wird, wird ebenfalls nur erzeugt wenn auch die Logfile aus dem Programm erzeugt werden kann.
Und in Zeile 1 habe ich nach
Desweiteren kann es passieren, dass die Datei nicht vollständig ausgeführt wird. Dazu kommt es, wenn einer der eingefügten Befehle einem Fehler erzeugt (Returncode != 0). Da in der ersten Zeile #!/bin/sh -e standardmäßig die Option -e angegeben ist, wird die Ausführung sofort abgebrochen. Um dieses Verhalten abzustellen, verkürzt man die 1. Zeile auf #!/bin/sh. (http://wiki.ubuntuusers.de/rc.local#Probleme-und-Loesungen)
das -e weggelassen.
Die Rechte sehen so aus:
drwxr-xr-x 2 root root 4096 2012-01-11 14:10 logs -rw-r--r-- 1 root root 159 2012-01-11 13:44 MeineLogDatei.log -rw-r--r-- 1 root root 10368 2012-01-10 23:57 MeineLogDatei.log.2012-01-10
Ich bin schon seit Tagen auf der Suche nach einer Lösung und komme einfach nicht weiter.
Danke schonmal im Voraus für die Hilfe! Wenn ich was wichtiges vergessen haben sollte bitte sagen!
Viele Grüße, Berta