Выполните Studio Android на перезагрузке с помощью сценария оболочки

Я хотел бы запустить Studio Android в то время как мой компьютерный запуск. Я использовал crontab и @reboot параметр:

crontab -e

и запланированный эта задача

@reboot /home/ziko/reboot_cron.sh # JOB_ID_1
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

затем в моем домашнем dir добавил сценарий - reboot_cron.sh

echo "It is now $(date +%T) on $(date +%A)" >> cron_reboot.log
/opt/android-studio/bin/studio.sh

После перезапуска входит в систему мой компьютер, который я не видел, Studio cron_reboot.log и Android не был запущен. Что сделало меня неправильно?

UPD. Я добавил вторую запланированную задачу, и она работает

#!/bin/sh
#!/bin/bash
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

@reboot root /home/ziko/reboot_cron.sh # don't work!
*/5 * * * * /home/ziko/mycrontest.sh   # it works!

И если я manully выполненный reboot_cron.sh затем, это работает, но в crontab он не делает!

1
задан 10 December 2015 в 16:47

1 ответ

Вы пробовали "@reboot root su -l ziko sh (script.sh)" из системного crontab?

Вы не можете заставить @reboot работать без полномочий root.

-

В системе / etc / crontab:

@reboot root su -l (user_to_run_as) (your_sh_script)

или пользователь без полномочий root 'crontab -e':

@reboot sh (your sh script)

(для: [ 115] https://askubuntu.com/a/549646/169878 )

-

Примечание. Я не совсем уверен, нужен ли вам root для правильного выполнения @reboot через crond под Ubuntu или Debian (или, если на то пошло, если он должен быть в общесистемном crontab). Сначала попробуйте "@reboot sh" и посмотрите, работает ли он как пользователь без полномочий root. Также обратитесь к https://unix.stackexchange.com/q/109804

РЕДАКТИРОВАТЬ: [ 1118]

Если вам действительно не нужно, чтобы это выполнялось через crond, возможно, было бы лучше установить это как скрипт init (на основе уровня запуска) или rc.local запись .. любой из них может быть выполнен при обычном запуске. Ваш скрипт будет выполнен после полного запуска системы. Поскольку вам не нужно гораздо больше контроля над сценарием, кроме как при его запуске при запуске (один раз), с rc.local все должно быть в порядке.

Пример для "rc.local":

sudo nano /etc/rc.local

добавить эту строку перед 'exit 0':

su -l ziko /opt/android-studio/bin/studio.sh

сохранить.

sudo chmod 755 /etc/rc.local

(Перезагрузка.) «Studio.sh» должен был выполняться / запускаться от имени пользователя ziko при запуске

-1
ответ дан 30 September 2019 в 02:03

Другие вопросы по тегам:

Похожие вопросы: