Hirdetés

Aktív témák

  • Grantys

    csendes tag

    Hello!
    Segítséget szeretnék kérni.Szeretnék egy szkriptet készíteni,de nem igazán értek hozzá.

    A feladat egy olyan szkript készítése, amely egy szolgáltatás indításáért és leállításáért felel, hasonlóan a /etc/init.d -ben lévő szkriptekhez System V stílusú rendszereken.

    A feladat megoldható bash, csh, tcsh, ksh és zsh héjprogramokkal.

    A szkript specifikációja:

    Az alkalmazás, amit indítunk, vagy leállítunk (a továbbiakban: a kívánt program), bármilyen program lehet amely hosszan fut, fantáziátlan kollégáknak a sleep programot ajánlom, de lehet valamilyen X11 alkalmazás is (pl. xeyes mosoly), hogy lássuk, ténylegesen mikor is fut. Az elkészítendő szkript, nevezzük most foo.sh-nak (mindenki választhat, hogy hívja) a következő módon kell működjön:

    * Adott egy állomány, alapértelmezésben mondjuk ~/sleep.pid . Ha ez a fájl létezik, akkor benne van az indítani-megállítani kívánt program foo.sh-val indított példányának PID-je.
    * A használat módjai:
    o foo.sh start
    + Megnézi, van-e a programnak a foo.sh-val indított példánya: ha létezik a ~/sleep.pid, akkor úgy értelmezi, hogy van. Ekkor megvizsgálja, a fájlban tárolt PID valóban a kívánt programhoz tartozik-e. Ha igen, a stdout-on tájékoztatja a felhasználót, hogy a program már fut, és kilép.
    + Ha a ~/sleep.pid nem létezik, vagy a benne tárolt PID-en már nem fut a kívánt program, akkor elindítja a programot, és az elindított program PID-ját tárolja a ~/sleep.pid -ben, valamint a felhasználót is tájékoztatja a stdout-on a program sikeres elindításáról. Ha a programot nem sikerült elindítani, törli az esetleg létező ~/sleep.pid-et és hibaüzenettel kilép.
    o foo.sh stop
    + Ha ~/sleep.pid létezik és a benne lévő PID-en a kívánt program fut, megállítja a programot, törli a ~/sleep.pid-et, és a stdout-on tájékozatja minderről a felhasználót.
    + Ha a ~/sleep.pid létezik de a benne lévő PID-en már nem fut a kívánt program, törli a ~/sleep.pid-et, és a stdout-on tájékoztatja a felhasználót.
    + Ha a ~/sleep.pid nem létezik, stdout-on közli ezt a felhasználóval, és kilép.
    o foo.sh restart
    + A fentiekhez hasonlóan ellenőrzi a kívánt program futását a ~/sleep.pid létezése és a benne tárolt PID alapján. Ha a kívánt program a megfelelő PID-en fut, megállítja azt, majd újra elindítja, és az új PID-et tárolja a ~/sleep.pid-ben. Ha nincs ~/sleep.pid kilép, ha van, de már nem fut a benne lévő PID-en a kívánt program, akkor törli a ~/sleep.pid-et és kilép. Természetesen minden esetben a stdout-on tájékoztatja a felhasználót a történtekről
    o foo.sh
    + A stdout-on tájékoztatja a felhasználót a szkript használatának mikéntjéről, és kilép.

Aktív témák