Loin komentosarjan, joka lisää cron-työn käyttäjän määritysten perusteella, mutta se ei toimi, koska minun on päivitettävä cron joka kerta Lisään työn crontabiin. Onko mahdollista päivittää cron tappamatta prosessia?
Vastaa
Niin kauan kuin skripti käyttää crontab
-ohjelmaa käyttäjän työtehtävien lisäämiseen ja poistamiseen, cron
-demonia ei tarvitse käynnistää uudelleen.
AIX 7.1 cron -käyttöopas kertoo :
Kun teet muutoksia crontab-tiedostoihin
crontab
-komennolla, muutoksen osoittava viesti lähetetään cron-demonille.
Katso myös crontab
käsikirja .
Yleinen toimintojen kulku, jonka komentosarjasi tekisi ota:
- Tuo käyttäjän sivutiedosto tekstitiedostoon käyttämällä
crontab -l >crontab.txt
. - Käsittele tekstitiedostoa lisäämällä, poistamalla tai muuttamalla töiden määrityksiä.
- Lataa käyttäjän crontab-välilehti uudet määritykset käyttämällä
crontab crontab.txt
.
Ensimmäisen ja viimeisen vaiheen komennot on suoritettava käyttäjänä (ensimmäinen vaihe voidaan suorittaa myös nimellä crontab -l username >crontab.txt
kuten esim root).
Tämä toimii kaikilla Unix-tiedostoilla, joissa on cron
.
Kommentit
Vastaa
AIX 7.1 cronin manuaalinen sivu sanoo :
cron-daemon lukee määritystiedoston, kun se on aktivoitu ja kun se vastaanottaa hangup-signaalin.
Joten vain kill -HUP cron_pid
pitäisi tehdä se.
Kommentit
- Olen jo kokeillut tätä, mutta haluaisin päivittää kokoonpanoni tappamatta prosessia
- @Shan
kill
-komento lähettää signaaleja prosessille. Yleensä prosessit voidaan tappaa, eli ne todella kuolevat vastaanottamalla signaalin. Mutta jos kyseessä oncron
-prosessi, se käsittelee signaalin, ei kuole ja lukee uudelleen kokoonpanonsa. - Lainamasi man-sivun osa on viitataan cron ' s -asetustiedostoon ,
/etc/cronlog.conf
, ei itse crontab-tiedostoihin. - En voi tehdä tästä vastausta tähän kysymykseen; kun muokkaan manuaalisesti crontab-tiedostoa ja HUP cronia, uutta cron-työtä ei suoriteta.
- @JeffSchaller on oikea, joudut joko tappamaan -9 cron_pid tai käyttämään crontabia crontab-tiedostossa, kuten Kusalananda ehdottaa. toisessa vastauksessa ladata crontab uudelleen.
crontab -l
.