Come posso eseguire anacron in modalità utente?


30

Vorrei impostare un'attività pianificata tramite, anacronma vorrei farlo in modalità utente. Come posso raggiungere questo obiettivo?


Se vuoi che l'attività venga eseguita in modalità utente, puoi fare ciò che ho fatto e semplicemente anteporre sudo -u <user>prima dell'attività inanacrontab
Karthik T

Risposte:


33

È possibile impostare un'istanza anacron separata per l'esecuzione in modalità utente:

  1. Crea una .anacroncartella nella tua home directory e in essa due sottocartelle etce spool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Crea un nuovo file ~/.anacron/etc/anacrontabcon contenuti simili ai seguenti:

    # /etc/anacrontab: configuration file for anacron
    
    # See anacron(8) and anacrontab(5) for details.
    
    SHELL=/bin/bash
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # period  delay  job-identifier  command
    1         10     testjob         test.sh
    
  3. Aggiungi la seguente riga al tuo crontab usando crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool

Solo per confermare, questo esegue lo script specificato come utente, quindi uno whoaminello script darà il nome utente?
Christoph

hm, sì, su un'ulteriore ispezione non vedo perché no ...
Christoph

3
Penso che devi correre anacronperiodicamente; sembra funzionare una volta e poi uscire. L'anacron del sistema viene chiamato una volta ogni ora. Suppongo che una strategia simile avrebbe funzionato qui, cioè chiamare l'utente anacrondall'utente crontab.
Sparhawk,

1
@Sparhawk ha concordato, in particolare Ubuntu 15.10 anacron usa entrambi /etc/apm/event.d/anacrone /etc/init/anacron.confper occuparsi dei riavvii.
Ciro Santilli 9 改造 中心 法轮功 六四 事件

1
Devi eseguire anacron ogni ora con un lavoro cron, ad es.01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside,

0

Questo ha funzionato per me (grazie), ma non ho usato l'ultimo passaggio indicato nella risposta:

Quindi aggiungi la seguente riga al tuo ~/.profile:

Sto usando Ubuntu Studio 12.10 Quantal e nel mio caso, invece di quell'ultimo passaggio, ho inserito qui una riga: "Menu Applicazioni" → "Impostazioni" → "Gestione impostazioni", quindi in Gestione impostazioni in "Sessione e avvio", quindi il Scheda "Avvio automatico applicazione".

Questo è per quelli di noi che sono utenti della GUI, perché ~/.profileprovengono solo da bash quando avvia una shell interattiva di accesso (anche ~/bashrcse non è così utile poiché provengono solo quando bash avvia una shell interattiva).


Mmh, anch'io sono un utente GUI e la linea .profileha sempre funzionato bene per me (Ubuntu 12.04 qui).
Glutanimate,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.