Si vous voulez que la tâche s'exécute en mode utilisateur, vous pouvez faire ce que j'ai fait et simplement ajouter sudo -u <user>avant la tâche dansanacrontab
Vous pouvez configurer une instance anacron distincte pour qu'elle s'exécute en mode utilisateur:
Créez un .anacrondossier dans votre répertoire personnel et dans celui-ci deux sous-dossiers, etcet spool:
mkdir -p ~/.anacron/{etc,spool}
Créez un nouveau fichier ~/.anacron/etc/anacrontabavec un contenu similaire au suivant:
# /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 command110 testjob test.sh
Ajoutez la ligne suivante à votre crontab en utilisant crontab -e:
Juste pour confirmer, cela exécute le script spécifié en tant qu'utilisateur, donc un whoamidans le script donnera le nom d'utilisateur?
Christoph
hm ouais, après une inspection plus approfondie, je ne vois pas pourquoi pas ...
Christoph
3
Je pense que vous devez exécuter anacronpériodiquement; il semble fonctionner une fois puis quitter. L'anacron du système est appelé une fois toutes les heures. Je suppose qu'une stratégie similaire fonctionnerait ici, c'est-à-dire appeler l'utilisateur anacrondepuis l'utilisateur crontab.
Sparhawk du
1
@Sparhawk a accepté, en particulier Ubuntu 15.10 anacron utilise les deux /etc/apm/event.d/anacronet /etc/init/anacron.confpour prendre en charge les redémarrages.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Vous devez exécuter anacron toutes les heures avec un travail cron, par exemple01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0
Cela a fonctionné pour moi (merci), mais je n'ai pas utilisé la dernière étape donnée dans la réponse:
Ajoutez ensuite la ligne suivante à votre ~/.profile:
J'utilise Ubuntu Studio 12.10 Quantal et dans mon cas, au lieu de cette dernière étape, je mets cette ligne ici: "Menu Applications" → "Paramètres" → "Gestionnaire de paramètres" puis dans le gestionnaire de paramètres sous "Session et démarrage" puis le Onglet «Démarrage automatique de l'application».
C'est pour ceux d'entre nous qui sont des utilisateurs de l'interface graphique, car il ~/.profilen'est fourni par bash que lorsqu'il démarre un shell interactif de connexion (même ~/bashrcn'est pas si utile car cela n'est fourni que lorsque bash démarre un shell interactif).
sudo -u <user>
avant la tâche dansanacrontab
Réponses:
Vous pouvez configurer une instance anacron distincte pour qu'elle s'exécute en mode utilisateur:
Créez un
.anacron
dossier dans votre répertoire personnel et dans celui-ci deux sous-dossiers,etc
etspool
:Créez un nouveau fichier
~/.anacron/etc/anacrontab
avec un contenu similaire au suivant:Ajoutez la ligne suivante à votre crontab en utilisant
crontab -e
:la source
whoami
dans le script donnera le nom d'utilisateur?anacron
périodiquement; il semble fonctionner une fois puis quitter. L'anacron du système est appelé une fois toutes les heures. Je suppose qu'une stratégie similaire fonctionnerait ici, c'est-à-dire appeler l'utilisateuranacron
depuis l'utilisateurcrontab
./etc/apm/event.d/anacron
et/etc/init/anacron.conf
pour prendre en charge les redémarrages.01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Cela a fonctionné pour moi (merci), mais je n'ai pas utilisé la dernière étape donnée dans la réponse:
J'utilise Ubuntu Studio 12.10 Quantal et dans mon cas, au lieu de cette dernière étape, je mets cette ligne ici: "Menu Applications" → "Paramètres" → "Gestionnaire de paramètres" puis dans le gestionnaire de paramètres sous "Session et démarrage" puis le Onglet «Démarrage automatique de l'application».
C'est pour ceux d'entre nous qui sont des utilisateurs de l'interface graphique, car il
~/.profile
n'est fourni par bash que lorsqu'il démarre un shell interactif de connexion (même~/bashrc
n'est pas si utile car cela n'est fourni que lorsque bash démarre un shell interactif).la source
.profile
a toujours bien fonctionné pour moi (Ubuntu 12.04 ici).