Crontab funktioniert nicht!
Salü Zusammen
Ich habe unter ubuntu Server Edition eine Citrix Session am laufen.
Falls mir diese abkackt möchte ich die mit einem Script wieder neu starten.
Ich habe dazu ein Script im Home Folder des Users angelegt dies sieht wie folgt aus.
Dises Script will ich mit der Crontab aufrufen leider will das nicht so funktionieren
wie ich das vorgesehen hatte! Die Crontab sieht wie folgt aus.
Habe schon versucht das sh wegzulassen hat aber nicht geklappt!
Vielen Dank im voraus für die Hilfe!
Gruess Itfreak
Ich habe unter ubuntu Server Edition eine Citrix Session am laufen.
Falls mir diese abkackt möchte ich die mit einem Script wieder neu starten.
Ich habe dazu ein Script im Home Folder des Users angelegt dies sieht wie folgt aus.
#!/bin/sh
# Üperprüfung der Citrix Session
if [ $(ps -A | grep -c citrix.sh) = 0 ];
then
echo "$(date) Deutsche Citrix Session restarten"
cd /home/Users
./citrix.sh &
fi
Dises Script will ich mit der Crontab aufrufen leider will das nicht so funktionieren
wie ich das vorgesehen hatte! Die Crontab sieht wie folgt aus.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/5 * * * * User exec /home/Users/checkCitrixSession.sh
Habe schon versucht das sh wegzulassen hat aber nicht geklappt!
Vielen Dank im voraus für die Hilfe!
Gruess Itfreak
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116778
Url: https://administrator.de/contentid/116778
Ausgedruckt am: 19.11.2024 um 23:11 Uhr
15 Kommentare
Neuester Kommentar
Sieht mir schwer nach einem Rechte-Problem aus. Ich vermute mal das der User "User" gar keine Berechtigung hat das Skript auszuführen. Du siehst ja das die anderen Skripte jeweils als root ausgeführt werden
Gruß André
P.S. Das sh weglassen ist keine gute Idee, wenn das Skript ein "sh" am Ende hat. Bei Linux sind aber Dateiendungen völlig unwichtig. Kannst das Ding auch .fritz nennen und wenn es ausführbar ist gehts trotzdem
Gruß André
P.S. Das sh weglassen ist keine gute Idee, wenn das Skript ein "sh" am Ende hat. Bei Linux sind aber Dateiendungen völlig unwichtig. Kannst das Ding auch .fritz nennen und wenn es ausführbar ist gehts trotzdem
Hallo,
mehrere Fragen:
Du hast als Benutzer User und als Homeverzeichnis /home/Users stehen. Ist das "s" ein Tippfehler?
Läuft das Skript, wenn Du es als User "User" aufrufst?
Wenn ja, passen schon einmal die Rechte, wenn nein, was ergibt
Was möchtest Du mit dem "exec" erreichen? Das wird nur genutzt, um die Shell zu ersetzen, lass es mal weg.
Hast Du die geänderte crontab dem crond bekanntgemacht?
Viele Grüße
mehrere Fragen:
Du hast als Benutzer User und als Homeverzeichnis /home/Users stehen. Ist das "s" ein Tippfehler?
Läuft das Skript, wenn Du es als User "User" aufrufst?
su -l User
/home/Users/checkCitrixSessions.sh
ls -l /home/Users/checkCitrixSessions.sh
Hast Du die geänderte crontab dem crond bekanntgemacht?
crontab /etc/crontab
Viele Grüße
Ich gehe mal davon aus, dass das Script im Prinzip läuft, aber nicht vom crond/anacrond aufgerufen wird?
Also, wenn Du es von Hand mit
startest, funktioniert es wie gewünscht?
Was ergibt denn ein
Gibt es auch eine /etc/anacrontab auf Deinem System?
Also, wenn Du es von Hand mit
su -l citrix
/home/citrix/checkCitrixSessions.sh
Was ergibt denn ein
ps ax | grep cron
Gibt es auch eine /etc/anacrontab auf Deinem System?
Guten Morgen,
was heißt: "wenn ich einfach normal in die Console gehe",
mit welchem Account bist Du dann angemeldet?
Und was passiert genau bei der Abfolge mit su -l?
Was ergibt
Zum Verständnis noch einige Fragen (sooo viele Fragen..... ):
Oben war zunächst von /home/Users die Rede, jetzt von /home/citrix. War "Users" ein Platzhalter oder gibt es das Verzeichnis wirklich? Und wenn ja, hat der Benutzer citrix Zugriff auf /home/Users? Stimmt die Groß/Kleinschreibung?
Wenn alles nicht funktioniert, was spricht eigentlich dagegen, das Script als root starten zu lassen?
Viele Grüße
was heißt: "wenn ich einfach normal in die Console gehe",
mit welchem Account bist Du dann angemeldet?
Und was passiert genau bei der Abfolge mit su -l?
Was ergibt
ls -al /home/citrix/checkCitrixSessions.sh
Zum Verständnis noch einige Fragen (sooo viele Fragen..... ):
Oben war zunächst von /home/Users die Rede, jetzt von /home/citrix. War "Users" ein Platzhalter oder gibt es das Verzeichnis wirklich? Und wenn ja, hat der Benutzer citrix Zugriff auf /home/Users? Stimmt die Groß/Kleinschreibung?
Wenn alles nicht funktioniert, was spricht eigentlich dagegen, das Script als root starten zu lassen?
Viele Grüße
Wenn die Session _immer_ laufen soll, würde ich das eher über die /etc/inittab regeln.
Guck mal in 'man 5 inittab' speziell den Abschnitt über respawn an.
Wegen dem Cron:
Mach doch mal spaßeshalber statt
lieber
p.s. Ich hoffe, dass das mit den Formatierungen so passt. ;)
edit: Wegen 'Cannot Open Display":
Ins Script. DISPLAY wird bei Shell-Scripten nicht automatisch gesetzt.
Guck mal in 'man 5 inittab' speziell den Abschnitt über respawn an.
Wegen dem Cron:
Mach doch mal spaßeshalber statt
*/5 * * * * citrix /home/citrix/checkCitrixSessions.sh
*/5 * * * * citrix /bin/sh /home/citrix/checkCitrixSessions.sh
p.s. Ich hoffe, dass das mit den Formatierungen so passt. ;)
edit: Wegen 'Cannot Open Display":
"export DISPLAY=:0.0"
Jetzt kommen wir der Sache näher. In Deinem Script wird die citrix.sh aufgerufen, die offenbar eine grafische Oberfläche benötigt?
Die steht dem cron-Prozess nicht zur Verfügung. Die Ergänzung von Ministry ist ein Versuch.
Gibt es denn bei der citrix.sh die Möglichkeit, über Kommandozeilenparameter ein bestimmtes Display zuzuordnen, idealerweise, sie ganz ohne Ausgabe starten zu lassen?
Sonst wird's jetzt kompliziert....
Die steht dem cron-Prozess nicht zur Verfügung. Die Ergänzung von Ministry ist ein Versuch.
Gibt es denn bei der citrix.sh die Möglichkeit, über Kommandozeilenparameter ein bestimmtes Display zuzuordnen, idealerweise, sie ganz ohne Ausgabe starten zu lassen?
Sonst wird's jetzt kompliziert....