Я пытаюсь запустить скрипт sh каждую минуту, используя crontab, но он не работает.
Когда я запускаю скрипт вручную, он выполняется правильно, однако crontab не может этого сделать.
Я создал задание с помощью crontab -e, и я вижу, что cron запущен, потому что, если я набираю pgrep cron, я получаю PID в ответ.
Я также знаю, что мой формат времени правильный, потому что я тестировал его с помощью этого онлайн-тестера.
wallpaperSlider.sh:
#!/bin/bash
feh --randomize --bg-fill /home/username/Pictures/wallpapers/*
wallpaperSlider.sh :
SHELL=/bin/bash
* * * * * username /home/username/.crons/wallpaperSlider.sh
Я прочитал самые распространенные ошибки в AskUbuntu, и я не думаю, что я
Я понимаю, что, возможно, мне не хватает какой-либо переменной среды, но я не уверен, как это проверить.
Я также знаю, что crontab -e меняет / создает файл tmp, в моем случае /tmp/crontab.wCajAu/crontab.
Ваш формат cron неверен. Вы хотите:
* * * * * /home/username/.crons/wallpaperSlider.sh
Пользовательские crontabs не имеют поля username. Это используется только для общесистемных crontab, таких как /etc/crontab. Вам также не нужно SHELL=/bin/bash, так как даже если ваша оболочка по умолчанию не bash (это dash на Ubuntu), ваш скрипт сам имеет строку shebang (#!/bin/bash), поэтому он будет запущен bash независимо от того, что запускает оболочка cron.
У вас, вероятно, будут другие проблемы, хотя, поскольку вы пытаетесь запустить приложение, которое общается с сервером X из cron. Если это так, вам нужно использовать:
DISPLAY=":0.0"
XAUTHORITY="/home/YOURUSERNAME/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
* * * * * /home/username/.crons/wallpaperSlider.sh
Ваш формат cron неверен. Вы хотите:
* * * * * /home/username/.crons/wallpaperSlider.sh
Пользовательские crontabs не имеют поля username. Это используется только для общесистемных crontab, таких как /etc/crontab. Вам также не нужно SHELL=/bin/bash, так как даже если ваша оболочка по умолчанию не bash (это dash на Ubuntu), ваш скрипт сам имеет строку shebang (#!/bin/bash), поэтому он будет запущен bash независимо от того, что запускает оболочка cron.
У вас, вероятно, будут другие проблемы, хотя, поскольку вы пытаетесь запустить приложение, которое общается с сервером X из cron. Если это так, вам нужно использовать:
DISPLAY=":0.0"
XAUTHORITY="/home/YOURUSERNAME/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
* * * * * /home/username/.crons/wallpaperSlider.sh
Ваш формат cron неверен. Вы хотите:
* * * * * /home/username/.crons/wallpaperSlider.sh
Пользовательские crontabs не имеют поля username. Это используется только для общесистемных crontab, таких как /etc/crontab. Вам также не нужно SHELL=/bin/bash, так как даже если ваша оболочка по умолчанию не bash (это dash на Ubuntu), ваш скрипт сам имеет строку shebang (#!/bin/bash), поэтому он будет запущен bash независимо от того, что запускает оболочка cron.
У вас, вероятно, будут другие проблемы, хотя, поскольку вы пытаетесь запустить приложение, которое общается с сервером X из cron. Если это так, вам нужно использовать:
DISPLAY=":0.0"
XAUTHORITY="/home/YOURUSERNAME/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
* * * * * /home/username/.crons/wallpaperSlider.sh