Ma crontab est comme suit (j'essaye de changer mon thème GNOME)
crontab -l
0 5 * * * /usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Adapta'
30 21 * * * /usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Adapta-Nokto'
Aussi, j'ai créé ce fichier
echo $USER
nikhil
cat /etc/cron.allow
nikhil
Lorsque j'exécute la commande mentionnée dans crontab, les deux fonctionnent.
Pourriez-vous s'il vous plaît dire si j'ai manqué une étape?
Modifier:
J'ai créé un fichier de script que j'exécute avec cron:
export TERM=xterm-256color
TimeHr=$(date +%H)
if ((${TimeHr}>18 || ${TimeHr}<5)); then
#if [${TimeHr} -gt 11 || ${TimeHr} -lt 5]; then
mkdir ${HOME}/Documents/TestNight
/usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Adapta'
else
mkdir ${HOME}/Documents/TestDay
/usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Adapta-Nokto'
fi
C'est crontab
$ crontab -l
36 5,19,23 * * * bash /home/nikhil/GnomeThemeChange
@reboot bash /home/nikhil/GnomeThemeChange
cron
fonctionne car il est capable de créer des dossiers de test. Mais que dois-je faire pour lancer gsettings
dans cron?
Merci à Tomáš Pospíšek pour les suggestions.
Ajoutez ce qui suit au script:
PID=$(pgrep gnome-session | tail -n1)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
Êtes-vous sûr que cron ne fonctionne pas? Si vous ajoutez une ligne comme
*/1 * * * touch /tmp/foobar123
dans votre crontab, le fichier apparaît-il dans /tmp
?
Si ce fichier n'apparaît pas après une minute ou deux, alors
ps auxw | grep cron
ou
Sudo service cron status
Si cron ne fonctionne pas, essayez de le démarrer avec
Sudo service cron start
Mais je suppose que le problème avec votre commande ci-dessus est que gsettings
a besoin que son environnement soit correctement configuré pour pouvoir s'exécuter, ce qu’il n’a probablement pas, lorsqu’il est exécuté à partir de cron
.