Létrehoztam egy szkriptet, amely hozzáad egy cron-feladatot a felhasználói specifikációk alapján, de nem fog működni, mivel minden alkalommal frissítenem kell a cront Mellékelek egy munkát a crontab-ban. Van-e mód a cron frissítésére a folyamat megölése nélkül?
Válasz
Mindaddig, amíg A szkript a (z) crontab
paranccsal adja hozzá és törölje a felhasználó munkaköri specifikációit, így nem kell újraindítani a cron
démonot.
Az AIX 7.1 cron kézikönyv oldalán ez áll: :
Amikor módosításokat hajt végre a crontab fájlokba a
crontab
paranccsal, a változást jelző üzenetet elküldik a cron démonnak.
Lásd még a crontab
kézikönyvet .
A szkript által végrehajtott műveletek általános folyamata take:
- A felhasználó beillesztése egy szövegfájlba a
crontab -l >crontab.txt
. - Manipulálja a szövegfájlt a feladatok specifikációinak hozzáadásával, eltávolításával vagy módosításával.
- Töltse be a felhasználó crontab-ját az új specifikációkkal a
crontab crontab.txt
.
Az első és az utolsó lépés parancsait felhasználóként kell végrehajtani (az első lépést futtathatja crontab -l username >crontab.txt
mint pl gyökér).
Ez minden olyan Unix esetében működik, amely a cron
parancsot használja.
Megjegyzések
Válasz
AIX 7.1 cron kézikönyv oldalán ez áll: :
A cron démon beolvassa a konfigurációs fájlt, amikor aktiválva van, és amikor megkapja a leszokási jelet.
Tehát csak kill -HUP cron_pid
meg kell tennie.
Megjegyzések
- Ezt már kipróbáltam, de a folyamat megölése nélkül szeretném frissíteni a konfigurációmat
- @Shan A
kill
parancs jeleket küld a folyamatnak. Általánosságban elmondható, hogy a folyamatokat meg lehet ölni, vagyis valójában meghalnak egy jel vételével. Decron
folyamat esetén kezeli a jelet, nem hal meg, és újra elolvassa a konfigurációját. - A man oldal idézett része: utalva a cron ' s konfigurációs fájlra ,
/etc/cronlog.conf
, nem pedig magukra a crontab fájlokra. - Nem tudom ezt a kérdésre válaszul megadni; amikor manuálisan szerkesztek egy crontab fájlt és a HUP cron-t, az új cron-feladat nem kerül végrehajtásra.
- A @JeffSchaller helyes, vagy meg kell ölni -9 cron_pid-t, vagy pedig a crontab-ot kell használni egy crontab-fájlban, ahogy azt Kusalananda javasolja a másik válaszban töltse be újra a crontabot.
crontab -l
által létrehozott fájlhoz.