Portál AbcLinuxu, 1. května 2025 00:43

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
29.3.2006 16:25 D-Evil | skóre: 25 | Praha
Rozbalit Rozbalit vše Re: Cron @reboot
Odpovědět | Sbalit | Link | Blokovat | Admin
Nikdy jsem to moc nepotřeboval, rc.local byl můj kamarád. Ale jednou jsem narazil na to, že bylo potřeba něco (fetchmail) pustit pod jinym uživatelem. Zeptal jsem se kamaráda, jaká je nejjednodušší metoda (a čekal jsem desetiřádkový zvěrstvo v bashi) a odpovědí mi bylo man cron. Od tý doby to spokojeně používám.
Fill avatar 29.3.2006 17:09 Fill | skóre: 19 | blog: Fill | Třebíč
Rozbalit Rozbalit vše Re: Cron @reboot
Odpovědět | Sbalit | Link | Blokovat | Admin
Dík za tip !

Hned mě napadá 10 způsobů jak to využít...
♡ Všechna bezpráví vyhlazena., Sociální síť, Rádio, Profil, Skripty na bitcoin mikrodary, titulky, YFiaS
29.3.2006 17:31 ---- | skóre: 23 | blog: -
Rozbalit Rozbalit vše Re: Cron @reboot
Odpovědět | Sbalit | Link | Blokovat | Admin
rc.local v debianu
29.3.2006 20:11 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Cron @reboot
Opraveno url ...
When your hammer is C++, everything begins to look like a thumb.
29.3.2006 23:24 xxxxxxxx | skóre: 16 | blog: mrtvy blog | v nebi
Rozbalit Rozbalit vše Re: Cron @reboot
Odpovědět | Sbalit | Link | Blokovat | Admin
nějak jsem to nepochopil. ten parametr @reboot znamena, ze to spusti po spusteni programu/systemu ktery se zrestartoval? k cemu by to bylo dobry? asi sem to fakt nepochopil :-(
www.pcnews.cz
xvasek avatar 30.3.2006 08:25 xvasek | skóre: 21 | blog: | Zlín
Rozbalit Rozbalit vše Re: Cron @reboot
Když jsi třeba non-root, máš perfektní HTTP server v Perlu a potřebuješ ho nahodit po spuštění systému (na nějakém vysokém portu, samozřejmě) a nemáš přístup na roota daného stroje.

Taky se tím dají provést všechny ty jednoduché nastavení, na které bys v Debianu psal rc skript - třeba stty pro modem, korekce nastavení hlasitosti na zvukovce, vypnutí zvuku u TV karty, který se mi při bootu občas z nějakého důvodu zapne, nastavení DSCP u odchozích paketů pro D-Link ADSL modemy...

No pokud to nepotřebuješ (což se může klidně stát :), tak ti to nenutím. :-)
30.3.2006 10:53 xxxxxxxx | skóre: 16 | blog: mrtvy blog | v nebi
Rozbalit Rozbalit vše Re: Cron @reboot
30.3.2006 08:33 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron @reboot
Odpovědět | Sbalit | Link | Blokovat | Admin
Asi by bylo přesnější neprezentovat to jako standardní vlastnost cronu, ale jako rozšíření jedné jeho konkrétní implementace…

Navíc se dokumentace nezmiňuje, jak crond pozná, že byl opravdu spuštěn v rámci inicializačních skriptů po startu systému a ne ručně později. To mi připadá dost důležité.

30.3.2006 13:44 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Cron @reboot
Navíc se dokumentace nezmiňuje, jak crond pozná, že byl opravdu spuštěn v rámci inicializačních skriptů po startu systému a ne ručně později. To mi připadá dost důležité.
Na implementaciu som sa nepozeral, ale nepise si to crond niekde do /var/... ?
Proste vykona danu akciu, pokial doteraz (v ramci beziaceho systemu) vykonana nebola
Project Satan infects Calculon with Werecar virus
xvasek avatar 30.3.2006 14:29 xvasek | skóre: 21 | blog: | Zlín
Rozbalit Rozbalit vše Re: Cron @reboot
Jestli je to rozšíření nevím a nechce se mi to hledat, automaticky to asi používat nebudu. Co se týká detekce startu, tak jsem zkoušel RTFS. :-) Vždy při spuštění cronu se spustí fce run_reboot_jobs(db), a v té stojí:
run_reboot_jobs(db)
        cron_db *db;
{
        register user           *u;
        register entry          *e;
    int rbfd;
#ifdef DEBIAN
#define REBOOT_FILE "/var/run/crond.reboot"
        /* Run on actual reboot, rather than cron restart */
        if (access(REBOOT_FILE, F_OK) == 0) {
                /* File exists, return */
                log_it("CRON", getpid(),"INFO",
                       "Skipping @reboot jobs -- not system startup");
                return;
        }
        /* Create the file */
        if ((rbfd = creat(REBOOT_FILE, S_IRUSR&S_IWUSR)) < 0) {
                /* Bad news, bail out */
                log_it("CRON",getpid(),"DEATH","Can't create reboot check file")
;
                exit(0);
        } else {
                close(rbfd);
                log_it("CRON", getpid(),"INFO", "Running @reboot jobs");
        }


        Debug(DMISC, ("[%d], Debian running reboot jobs\n",getpid()));

#endif
        Debug(DMISC, ("[%d], vixie running reboot jobs\n", getpid()));
        for (u = db->head;  u != NULL;  u = u->next) {
                for (e = u->crontab;  e != NULL;  e = e->next) {
                        if (e->flags & WHEN_REBOOT) {
                                job_add(e, u);
                        }
                }
        }
        (void) job_runqueue();
}
Z toho mi vychází, že pokud cron není v Debianu, tak spustí reboot jobs vždycky a pokud je, tak si to hlídá vytvořením souboru /var/run/crond.reboot, který mu zřejmě debianí rc.init někde smaže. Tato modicikace je součástí debianího diffu. Taky je možné, že si to na jiných systémech hlídá jinak podobně.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.