Skript im cron.hourly ok, im cron.d nicht

Bash, Shell, PHP, Python, Perl, CGI
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben

Skript im cron.hourly ok, im cron.d nicht

Post by Outlaw »

Hallo Leute,

sorry, wenn ich newbeehaft was fragen muss aber mir fällt dazu nix mehr ein und ich weiss nicht, nach was ich noch suchen soll.

Ich hatte im cron.hourly ein Skript drin, was den Apachen killt, die Resourcen löscht und den Apachen neu startet.

Ich weis, das ist nicht die feine Art und ich wollte es ja auch wieder deaktivieren, da ich "vermute", daß die Probleme, die ich hatte und weshalb ich das Skript eingebaut hatte, gelöst sind. Jedoch will ich noch nicht ganz drauf verzichten und diese Routine 2x am Tag und später gar nicht mehr laufen lassen.

Problem:

Wenn ich das Skript im cron.hourly laufen lasse, funzt alles Prima, wenn ich es aber vom cron.d aus starte, also in das confixx File mit rein hänge, läuft es nur teilweise.

So habe ich es im "confixx" drin:

Code: Select all

-30 0,12 * * * root    /cronfiles/apachecheck
Es soll also jeden Tag um 0:30 Uhr und 12:30 ausgeführt werden. Um 0:30 startete es auch aber ich bekam vom System folgende Mail:

Code: Select all

httpd: no process killed
resource(s) deleted
Starting httpd [ PERL PHP4 SSL ]/usr/sbin/rcapache: line 124: startproc: command not found
stty: standard input: Invalid argument
..done
In den Logs ist nur ne Lücke zwischen 0:30 Uhr und der Zeit, als ich den Apachen wieder gestaret habe, sonst keine Fehler bis auf obige vom Cron daemon.

In dem Skript apachecheck steht folgendes:

Code: Select all

#!/bin/bash

/usr/bin/killall -9 httpd;
/cronfiles/apacherestart;
/usr/sbin/rcapache start;
Im apacherestart steht dieses:

Code: Select all

#!/usr/bin/perl
system("killall -9 httpd");
sleep 1;
$tmp = `/usr/bin/ipcs -s | grep wwwrun`;
@tmp= split(/n/,$tmp);
foreach $tmp (@tmp)
        {
        $tmp =~ s/       {1,}/ /g;
        $pid = (split(/ /,$tmp))[1];
        system("/usr/bin/ipcrm sem $pid");
        }
Wo liegt da der Fehler ??

Gruß Outi
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: Skript im cron.hourly ok, im cron.d nicht

Post by niklas_ »

Du kannst Crontabs (ob nun Confixx installiert ist odernicht)
mit diesem Aufruf einstellen:
crontab -e
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben

Re: Skript im cron.hourly ok, im cron.d nicht

Post by Outlaw »

Das weis ich, aber was macht das für einen Unterschied ??

Gruß Outi
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: Skript im cron.hourly ok, im cron.d nicht

Post by niklas_ »

mit

Code: Select all

crontab -e
kannst du über die entsprechende Eingabe die zeitgesteuerte ausführung bestimmen. syntax der zeile ist im forum / via google in erfahrung zu bringen
cybermage
Posts: 158
Joined: 2002-12-10 22:10
Location: Ausgburg (Germany)

Re: Skript im cron.hourly ok, im cron.d nicht

Post by cybermage »

aber /etc/crontab ändert man afaik normalerweise per hand, oder?
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: Skript im cron.hourly ok, im cron.d nicht

Post by niklas_ »

crontabs dürfen nur mit dem

Code: Select all

crontab -e
editor editiert werden.
cybermage
Posts: 158
Joined: 2002-12-10 22:10
Location: Ausgburg (Germany)

Re: Skript im cron.hourly ok, im cron.d nicht

Post by cybermage »

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
crontab -e ändert nämlich normalerweise die crontab vom jeweiligen user
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben

Re: Skript im cron.hourly ok, im cron.d nicht

Post by Outlaw »

niklas_ wrote:mit

Code: Select all

crontab -e
kannst du über die entsprechende Eingabe die zeitgesteuerte ausführung bestimmen. syntax der zeile ist im forum / via google in erfahrung zu bringen
Das is mir auch klar. Die Syntax kenne ich, der Unterschied is nur, daß ich "root" nicht mehr angeben muss.

Aber was hat das mit meinem Problem zu tun ??

Die Crons werden ja perfekt zur gewünschten Uhrzeit ausgeführt, nur verstehe ich nicht, warum sich mein Apache nicht mehr starten lässt, sobald ich von cron.hourly zu cron.d wechsle ....

Gruß Outi