/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Task scheduler til Ubuntu 8.04
Fra : Brian Alexandersen


Dato : 22-07-08 20:15

Hej.

Jeg søger en app til at køre et program i et specifikt tidsrum for så at
stoppe programmet (f.eks. 17-19).

Jeg har fundet gnome-schedule som ser ud til at skulle kunne det jeg
gerne vil man kan ikke få det m** til at virke.
Den task som er planlagt starter ikke som den skal.
Hvis jeg starter gnome-schedule fra en terminal kommer den med "no
crontab for (brugernavn)".

Nogen som har forslag til hvordan jeg enten får det til at virke eller
et anden fungerende forslag til hvordan jeg kan gøre det.

mvh

Brian Alexandersen

 
 
Thomas Jespersen (22-07-2008)
Kommentar
Fra : Thomas Jespersen


Dato : 22-07-08 20:22

On Tue, 22 Jul 2008 21:15:06 +0200, Brian Alexandersen wrote:

> Nogen som har forslag til hvordan jeg enten får det til at virke eller
> et anden fungerende forslag til hvordan jeg kan gøre det.

Det program du snakkede om gav dig et hint: crontab.

Prøv at google på "crontab tutorial" og du vil finde en del anvisninger
på hvordan du gør.


Regnar Bang Lyngsø (22-07-2008)
Kommentar
Fra : Regnar Bang Lyngsø


Dato : 22-07-08 21:54

Brian Alexandersen wrote:

> Jeg søger en app til at køre et program i et specifikt tidsrum for så at
> stoppe programmet (f.eks. 17-19).

Noget der skal ske flere gange - se crontab.

Noget der skal ske én gang og køre i to timer:

Eksempel i en kommandoprompt:

Først planlægges et job til at køre klokken 17 vha. at-kommandoen.

Dit program planlægges til at starte i baggrunden - og slåes ihjel 2
timer senere.

Du kan derefter vha. kommandoen atq verificere at dit job er i køen.

Hvis du fortryder kan du bruge atrm til at fjerne jobbet.

$ at 17:00
warning: commands will be executed using /bin/sh
at> command &
at> echo kill $! | at now + 2 hours
at> <tast Ctrl-D>
at> <EOT>
job n at Wed Jul 23 17:00:00 2008
$ atq
job n at Wed Jul 23 17:00:00 2008
$ atrm n
$ atq
$


Knus
Regnar

Jørgen Heesche (22-07-2008)
Kommentar
Fra : Jørgen Heesche


Dato : 22-07-08 22:01

Brian Alexandersen wrote:
> Hej.
>
> Jeg søger en app til at køre et program i et specifikt tidsrum for så at
> stoppe programmet (f.eks. 17-19).
>
> Jeg har fundet gnome-schedule som ser ud til at skulle kunne det jeg
> gerne vil man kan ikke få det m** til at virke.
> Den task som er planlagt starter ikke som den skal.
> Hvis jeg starter gnome-schedule fra en terminal kommer den med "no
> crontab for (brugernavn)".
>
> Nogen som har forslag til hvordan jeg enten får det til at virke eller
> et anden fungerende forslag til hvordan jeg kan gøre det.
>
Crontab kan starte et program på et givet tidspunkt, men ikke stoppe et
program.
Et program vil 'normalt' stoppe selv når dets opgave er fuldført.

--
Med venlig hilsen

Jørgen Heesche
mailto:heesche@webspeed.dk

Michael Zedeler (23-07-2008)
Kommentar
Fra : Michael Zedeler


Dato : 23-07-08 01:01

Jørgen Heesche wrote:
> Brian Alexandersen wrote:
>> Hej.
>>
>> Jeg søger en app til at køre et program i et specifikt tidsrum for så
>> at stoppe programmet (f.eks. 17-19).
>>
>> Jeg har fundet gnome-schedule som ser ud til at skulle kunne det jeg
>> gerne vil man kan ikke få det m** til at virke.
>> Den task som er planlagt starter ikke som den skal.
>> Hvis jeg starter gnome-schedule fra en terminal kommer den med "no
>> crontab for (brugernavn)".
>>
>> Nogen som har forslag til hvordan jeg enten får det til at virke eller
>> et anden fungerende forslag til hvordan jeg kan gøre det.
>>
> Crontab kan starte et program på et givet tidspunkt, men ikke stoppe et
> program.
> Et program vil 'normalt' stoppe selv når dets opgave er fuldført.

Der er mange måder at løse det problem uden mere end nogle få liniers
shell-script. F. eks.

#!/bin/bash

minkommando & # Kør minkommando i baggrunden
sleep 3600 # Sov i en time
kill % # Slå minkommando ihjel

Mvh. Michael.

Jørgen Heesche (23-07-2008)
Kommentar
Fra : Jørgen Heesche


Dato : 23-07-08 10:44

Michael Zedeler wrote:
> Jørgen Heesche wrote:
>> Brian Alexandersen wrote:
>>> Hej.
>>>
>>> Jeg søger en app til at køre et program i et specifikt tidsrum for så
>>> at stoppe programmet (f.eks. 17-19).
>>>
>>> Jeg har fundet gnome-schedule som ser ud til at skulle kunne det jeg
>>> gerne vil man kan ikke få det m** til at virke.
>>> Den task som er planlagt starter ikke som den skal.
>>> Hvis jeg starter gnome-schedule fra en terminal kommer den med "no
>>> crontab for (brugernavn)".
>>>
>>> Nogen som har forslag til hvordan jeg enten får det til at virke
>>> eller et anden fungerende forslag til hvordan jeg kan gøre det.
>>>
>> Crontab kan starte et program på et givet tidspunkt, men ikke stoppe
>> et program.
>> Et program vil 'normalt' stoppe selv når dets opgave er fuldført.
>
> Der er mange måder at løse det problem uden mere end nogle få liniers
> shell-script. F. eks.
>
> #!/bin/bash
>
> minkommando & # Kør minkommando i baggrunden
> sleep 3600 # Sov i en time
> kill % # Slå minkommando ihjel
>
> Mvh. Michael.
Det er en god metode, som jeg varmt kan anbefale at
Brian Alexandersen benytter. Cron kombineret med indbygget timer i
cronjobbet er en effektiv scheduleringsmetode.

--
Med venlig hilsen

Jørgen Heesche
mailto:heesche@webspeed.dk

Brian Alexandersen (23-07-2008)
Kommentar
Fra : Brian Alexandersen


Dato : 23-07-08 18:11

>> Mvh. Michael.
> Det er en god metode, som jeg varmt kan anbefale at
> Brian Alexandersen benytter. Cron kombineret med indbygget timer i
> cronjobbet er en effektiv scheduleringsmetode.
>

Jeg har så fundet ud af at programmet har en --quit command så man kan
få den til at afslutte.

Så skal jeg vel blot have en crontab entry til at starte programmet med
og en til at stoppe den med...

Efter lidt griflen i en console....

Men det lader ikke til at ville som jeg vil...
Det er program som kører under Gnome som jeg vil starte og stoppe.
Hvis jeg gør det fra en console i Gnome virker det fint men prøver jeg
fra en SSH login på maskinen virker det desværre ikke.

Man kan måske ikke starte Gnome programmer via CRON ???

Hvad er der ellers af muligheder ???
Det skal gerne være så autonomt som muligt...

mvh

Brian

Regnar Bang Lyngsø (23-07-2008)
Kommentar
Fra : Regnar Bang Lyngsø


Dato : 23-07-08 18:56

Brian Alexandersen wrote:

> Man kan måske ikke starte Gnome programmer via CRON ???

Tjohhh - men du skal være sikker på at du har DISPLAY-variablen sat (og
har ret til at skrive til X-serveren).

Så noget i retning af følgende i dit cron-job:

export DISPLAY=:0.0
program

Knus
Regnar

Brian Alexandersen (24-07-2008)
Kommentar
Fra : Brian Alexandersen


Dato : 24-07-08 19:41

Regnar Bang Lyngsø wrote:
> Brian Alexandersen wrote:
>
>> Man kan måske ikke starte Gnome programmer via CRON ???
>
> Tjohhh - men du skal være sikker på at du har DISPLAY-variablen sat (og
> har ret til at skrive til X-serveren).
>
> Så noget i retning af følgende i dit cron-job:
>
> export DISPLAY=:0.0
> program
>
> Knus
> Regnar

Det ser ud til at virke (ihvertfald igennem en ssh forbindelse)...
Programmet starter i Gnome og det ser jo ud til at gøre som den skal.
"export DISPLAY=:0.0" skal vel kun køres en gang (og igen ved evt reboot
af maskinen) ??

Men efter at have tastet det ind i cron osv ser det ikke ud til at der
sker noget... (sidder og holder øje via en vnc forbindelse).

Skal der gå noget tid før end cron opdaterer og kører det ???

crontab -l
30 20 * * * export DISPLAY=:0.0
31 20 * * * program
45 20 * * * program --quit

Men det starter ikke...
I eksemplet her skulle den gerne køre den export commando kl 20:30 (for
at være helt sikker).
Starte programmet kl 20:31 og afslutte det igen 20:45.

Her har den haft ca 15 minutters tid fra at jeg ændrede tidspunktet til
den skulle køre det...

Men 20:30 kom, blev til 20:31 og med stor forventning skete der absolut
intet... Hmmmm...

Efter hvad jeg kan se er syntax i crontab korrekt.

Hvad gør jeg forkert ???

mvh Brian

Jørgen Heesche (25-07-2008)
Kommentar
Fra : Jørgen Heesche


Dato : 25-07-08 09:37

Brian Alexandersen wrote:
> Regnar Bang Lyngsø wrote:
>> Brian Alexandersen wrote:
>>
>>> Man kan måske ikke starte Gnome programmer via CRON ???
>>
>> Tjohhh - men du skal være sikker på at du har DISPLAY-variablen sat
>> (og har ret til at skrive til X-serveren).
>>
>> Så noget i retning af følgende i dit cron-job:
>>
>> export DISPLAY=:0.0
>> program
>>
>> Knus
>> Regnar
>
> Det ser ud til at virke (ihvertfald igennem en ssh forbindelse)...
> Programmet starter i Gnome og det ser jo ud til at gøre som den skal.
> "export DISPLAY=:0.0" skal vel kun køres en gang (og igen ved evt reboot
> af maskinen) ??
>
> Men efter at have tastet det ind i cron osv ser det ikke ud til at der
> sker noget... (sidder og holder øje via en vnc forbindelse).
>
> Skal der gå noget tid før end cron opdaterer og kører det ???
>
> crontab -l
> 30 20 * * * export DISPLAY=:0.0
> 31 20 * * * program
> 45 20 * * * program --quit
>
> Men det starter ikke...
> I eksemplet her skulle den gerne køre den export commando kl 20:30 (for
> at være helt sikker).
> Starte programmet kl 20:31 og afslutte det igen 20:45.
>
> Her har den haft ca 15 minutters tid fra at jeg ændrede tidspunktet til
> den skulle køre det...
>
> Men 20:30 kom, blev til 20:31 og med stor forventning skete der absolut
> intet... Hmmmm...
>
> Efter hvad jeg kan se er syntax i crontab korrekt.
>
> Hvad gør jeg forkert ???
>

Det giver ingen mening med et cron-job, der bare sætter en environment
variabel, den variabel gælder kun selve jobbet.
Brugerens environment variable kan ikke ses af cron, det er derfor
nødvendigt at sætte environment variable i det cronjob, der skal køre et
program. Det er typisk variablen PATH, der er brug for at sætte. Man kan
dog undvære PATH, hvis der sættes fuld sti på programkald.


--
Med venlig hilsen

Jørgen Heesche
mailto:heesche@webspeed.dk

Rene Joergensen (25-07-2008)
Kommentar
Fra : Rene Joergensen


Dato : 25-07-08 09:53

Brian Alexandersen <no-spam@alexandersen.nu> wrote:

> Skal der gå noget tid før end cron opdaterer og kører det ???

Den skal bruge ca. et minuts tid, alt efter hvad det er for en crond.

> crontab -l
> 30 20 * * * export DISPLAY=:0.0
> 31 20 * * * program
> 45 20 * * * program --quit

Hvis det er vixie cron kan du gøre:

DISPLAY=:0.0
31 20 * * * program
45 20 * * * program --quit

Så er $DISPLAY sat for alle cronjobs der kører.

Alternativt:

31 20 * * * DISPLAY=:0.0 ; program
45 20 * * * DISPLAY=:0.0 ; program --quit

--
-René


Brian Alexandersen (25-07-2008)
Kommentar
Fra : Brian Alexandersen


Dato : 25-07-08 18:50

Rene Joergensen wrote:
> Den skal bruge ca. et minuts tid, alt efter hvad det er for en crond.
>
> Hvis det er vixie cron kan du gøre:
>
> DISPLAY=:0.0
> 31 20 * * * program
> 45 20 * * * program --quit
>
> Så er $DISPLAY sat for alle cronjobs der kører.
>
> Alternativt:
>
> 31 20 * * * DISPLAY=:0.0 ; program
> 45 20 * * * DISPLAY=:0.0 ; program --quit
>

Nu er det stadig et forsøg på at få det hele til at virke.
Jeg har haft programmet til at køre natten igennem for at se om "--quit"
delen virker og det gør det så ikke da det stadig kørte da jeg kom hjem
fra arbejde.

Jeg har nu sat det nederste eksempel ind i crontab for at se om der sker
noget.

30 19 * * * DISPLAY=:0.0 ; /usr/bin/program
45 19 * * * DISPLAY=:0.0 ; /usr/bin/program --quit

Der skere ikke så meget...

Så kom jeg til at tænke på at kigge i sysloggen for evt om der stod
noget i den...

Jul 25 19:30:01 enigma /USR/SBIN/CRON[6987]: (sysadmin) CMD
(DISPLAY=:0.0 ; /usr/bin/(program) #JOB_ID_3)

Så den har kørt det.

Men hvorfor programmet ikke vil starte beats me.
Hvis jeg kører "DISPLAY=:0.0 ; /usr/bin/program" i en consol vil den
ikke starte. Hvis jeg derimod skriver "export DISPLAY=:0.0 ;
/usr/bin/program" så kan det godt.

Så nu starter den som den skal.. NICE...
Og den kan også stoppe igen...
Det er bare TOP DOLLAR....

Tak for hjælpen...

Rene Joergensen (25-07-2008)
Kommentar
Fra : Rene Joergensen


Dato : 25-07-08 18:41

Brian Alexandersen <no-spam@alexandersen.nu> wrote:

> 30 19 * * * DISPLAY=:0.0 ; /usr/bin/program
> 45 19 * * * DISPLAY=:0.0 ; /usr/bin/program --quit
> Der skere ikke så meget...

Det er fordi jeg var fuld af lyv, det skal være uden semikolon. Altså:
30 19 * * * DISPLAY=:0.0 /usr/bin/program
45 19 * * * DISPLAY=:0.0 /usr/bin/program --quit

> Tak for hjælpen...

Så lidt.

--
-René


Thorbjørn Ravn Ander~ (23-07-2008)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 23-07-08 21:45

Brian Alexandersen skrev den 23-07-2008 19:11:

> Det er program som kører under Gnome som jeg vil starte og stoppe.
> Hvis jeg gør det fra en console i Gnome virker det fint men prøver jeg
> fra en SSH login på maskinen virker det desværre ikke.

Har du husket at sætte DISPLAY variablen efter at ssh'e ind?

--
Thorbjørn Ravn Andersen "... plus... Tubular Bells!"

Adam Sjøgren (23-07-2008)
Kommentar
Fra : Adam Sjøgren


Dato : 23-07-08 18:49

On Wed, 23 Jul 2008 19:11:04 +0200, Brian wrote:

> Man kan måske ikke starte Gnome programmer via CRON ???

> Hvad er der ellers af muligheder ???
> Det skal gerne være så autonomt som muligt...

Hvad er det for et Gnome-program du vil starte og stoppe automatisk?

Måske xvfb kan bruges?


Mvh.

--
"Angels can fly because they take themselves lightly." Adam Sjøgren
asjo@koldfront.dk

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste