Jak mogę uruchomić anakron w trybie użytkownika?

30

Chciałbym skonfigurować zaplanowane zadanie przez, anacronale chciałbym to zrobić w trybie użytkownika. Jak mogę to osiągnąć?

Glutanimate
źródło
Jeśli chcesz, aby zadanie działało w trybie użytkownika, możesz zrobić to, co zrobiłem i po prostu przejść sudo -u <user>przed zadaniem wanacrontab
Karthik T
2
Odpowiedział także tutaj: serverfault.com/questions/172989/user-specific-anacrontab / ... i oto fajne, w pełni napisane rozwiązanie: akeil.net/posts/user-controlled-anacron.html
Simon Woodside

Odpowiedzi:

33

Możesz skonfigurować osobną instancję anakronu do działania w trybie użytkownika:

  1. Utwórz .anacronfolder w swoim katalogu domowym, aw nim dwa podfoldery, etci spool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Utwórz nowy plik ~/.anacron/etc/anacrontabz zawartością podobną do następującej:

    # /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. Dodaj następujący wiersz do swojego crontab, używając crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool
Glutanimate
źródło
Żeby tylko potwierdzić, uruchamia on określony skrypt jako użytkownik, więc a whoamiw skrypcie poda nazwę użytkownika?
Christoph
hm tak, przy dalszej kontroli nie widzę, dlaczego nie ...
Christoph
3
Myślę, że musisz biegać anacronokresowo; wydaje się działać raz, a następnie wyjść. Anakron systemu jest wywoływany raz na godzinę. Przypuszczam, że działałaby tutaj podobna strategia, tzn. Zadzwonić do użytkownika anacronod użytkownika crontab.
Sparhawk
1
@Sparhawk zgodził się, w szczególności anacron z Ubuntu 15.10 używa obu tych funkcji /etc/apm/event.d/anacroni /etc/init/anacron.confzajmuje się restartami.
Ciro Santilli 9 改造 中心 法轮功 六四 事件
1
Trzeba uruchomić anacron godzinowa z crona np01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0

To działało dla mnie (dzięki), ale nie użyłem ostatniego kroku podanego w odpowiedzi:

Następnie dodaj następujący wiersz do ~/.profile:

Używam Ubuntu Studio 12.10 Quantal iw moim przypadku zamiast tego ostatniego kroku umieściłem tutaj jedną linijkę: „Menu aplikacji” → „Ustawienia” → „Menedżer ustawień”, a następnie w Menedżerze ustawień w sekcji „Sesja i uruchomienie”, a następnie Karta „Autostart aplikacji”.

To jest dla tych z nas, którzy są użytkownikami GUI, ponieważ ~/.profilejest pozyskiwany tylko przez bash, gdy uruchamia interaktywną powłokę do logowania (nawet ~/bashrcnie jest tak przydatny, ponieważ jest pozyskiwany tylko wtedy, gdy bash uruchamia interaktywną powłokę).

sam
źródło
Mmh, sam jestem użytkownikiem GUI i wejście .profilezawsze działało dla mnie dobrze (tutaj Ubuntu 12.04).
Glutanimate,