Gå til innhold

[Løst]Sjekke om prosess kjører - starte hvis ikke


Ekko

Anbefalte innlegg

Hei

 

Har et problem med en liten boks jeg har. Et program stopper i tide og utide og jeg skulle gjerne ha sjekket om dette programmet kjører og startet det hvis ikke.

 

Jeg ser for meg at man har en cronjobb som kjører et skript som sjekker om prosessen kjører og deretter starter den hvis den ikke gjør det.

 

Jeg ser for meg da at man kjører ps og bruker grep til å prøve å finne prosessen i output fra ps og at man starter prosessen om man ikke finner den.

 

Problmene mine er:

 

1. Jeg har aldri laget en cronjobb før

2. Det ser ikke ut som at cron er installert. Det er en strippet utgave av linux som kjører på en litt spesiell hardware det er snakk om, versjonen er 2.6.24.7-rt17 #1 PREEMPT.

3. Jeg har ikke skrevet et skript før.

 

 

Har noen noen pekerpinner for hva jeg bør prøve å gjøre, evt om den fremgangsmåten jeg har skissert er den beste, eller finnes det andre lure triks for å gjøre en slik oppgave.

 

EDIT: kunne det vært en mulighet å kjøre et skript på oppstart som går i loop men som sover 1 min mellom hver gang det sjekker? Da slipper jeg vel styret det evt er med å installere cron-biten.

 

 

 

EDIT 2: Litt usikker på om det er relevant, men er installert busybox:

sh-2.05a$ busybox

BusyBox v1.00-pre8 (2004.05.28-00:36+0000) multi-call binary

 

Usage: busybox [function] [arguments]...

or: [function] [arguments]...

 

BusyBox is a multi-call binary that combines many common Unix

utilities into a single executable. Most people will create a

link to busybox for each function they wish to use, and BusyBox

will act like whatever it was invoked as.

 

Currently defined functions:

[, basename, busybox, cat, chgrp, chmod, chown, chroot, clear, cp, cut, date, dd, df, dirname, dmesg, du, echo, env, false, fgrep, find,

free, grep, gunzip, gzip, halt, head, hexdump, hostname, id, ifconfig, init, insmod, kill, killall, klogd, ln, logger, ls, lsmod, mesg,

mkdir, mknod, modprobe, more, mount, msh, mv, nc, nslookup, ping, pivot_root, poweroff, ps, pwd, reboot, reset, rm, rmdir, rmmod, route,

sed, sh, sleep, sort, stty, sync, syslogd, tail, tar, tee, telnet, telnetd, test, top, touch, true, tty, umount, uname, uniq, uptime,

vi, which, who, whoami, yes, zcat

 

EDIT3: Fortsetter å oppdatere her jeg så folk ikke svarer på noe jeg vet eller tror jeg vet.

Kan se ut som jeg bør prøve å oppgradere busyboxen for å få inn crond.

Endret av Ekko
Lenke til kommentar
Videoannonse
Annonse

Til scriptet kan du bruke

 

#! /bin/bash

process=<prosessens navn>
if [ `ps -A | grep $process` != "" ]; do
process
fi

 

og lime det inn i en fil. Husk å gjøre filen kjørbar med `chmod +x <filnanv>` etterpå.

 

Hva cron angår får du nesten researche selv, har aldri brukt det selv.

 

Det ville nok vært til hjelp for deg selv å prøve å finne ut hva som gjør at prosessen du vil kjøre ikke oppfører seg slik den skal.

Endret av mikeys
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...