cronjob не может найти переменные среды, определенные в .bashrc

Краткий ответ:

#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT_STYLE=hidden

Или просто удалите первые две строки в приведенной выше записи и замените его на

GRUB_TIMEOUT_STYLE=[menu|countdown|hidden]

Короткий ответ: [!d1 ]

Начиная с этого времени (2016) опции GRUB_HIDDEN_TIMEOUT и GRUB_HIDDEN_TIMEOUT_QUIET уже устарели. Поэтому не используйте их больше. Вместо этого вы можете использовать GRUB_TIMEOUT_STYLE.

Согласно info -f grub -n 'Simple configuration', у вас есть это:

'GRUB_TIMEOUT_STYLE'

 If this option is unset or set to 'menu', then GRUB will display
 the menu and then wait for the timeout set by 'GRUB_TIMEOUT' to
 expire before booting the default entry.  Pressing a key interrupts
 the timeout.

 If this option is set to 'countdown' or 'hidden', then, before
 displaying the menu, GRUB will wait for the timeout set by
 'GRUB_TIMEOUT' to expire.  If <ESC> is pressed during that time, it
 will display the menu and wait for input.  If a hotkey associated
 with a menu entry is pressed, it will boot the associated menu
 entry immediately.  If the timeout expires before either of these
 happens, it will boot the default entry.  In the 'countdown' case,
 it will show a one-line indication of the remaining time.
1
задан 18 April 2017 в 18:45

8 ответов

Напишите небольшой скрипт bash mypythonscript, состоящий из:

#!/bin/bash
set ENVIRONMENT_VARIABLE_1=...
set ENVIRONMENT_VARIABLE_2=...
/usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

Сделайте его исполняемым:

chmod +x mypythonscript

В crontab замените строку на

[ f3]
1
ответ дан 22 May 2018 в 23:28
  • 1
    Если вы используете bash, я думаю, вы хотите использовать export VAR=value , чтобы переменные фактически передавались в среды команд, которые вы запускали. Встроенный set встроенный присваивает значения позиционным параметрам (между прочим). Попробуйте set x=blah; printf "x: $x\n1: $1\n" – ilkkachu 19 April 2017 в 00:46

Напишите небольшой скрипт bash mypythonscript, состоящий из:

#!/bin/bash set ENVIRONMENT_VARIABLE_1=... set ENVIRONMENT_VARIABLE_2=... /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

Сделайте его исполняемым:

chmod +x mypythonscript

В crontab замените строку на

* * * * * /path/to/mypythonscript
1
ответ дан 18 July 2018 в 14:42

Напишите небольшой скрипт bash mypythonscript, состоящий из:

#!/bin/bash set ENVIRONMENT_VARIABLE_1=... set ENVIRONMENT_VARIABLE_2=... /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

Сделайте его исполняемым:

chmod +x mypythonscript

В crontab замените строку на

* * * * * /path/to/mypythonscript
1
ответ дан 24 July 2018 в 20:27

Напишите небольшой скрипт bash mypythonscript, состоящий из:

#!/bin/bash set ENVIRONMENT_VARIABLE_1=... set ENVIRONMENT_VARIABLE_2=... /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

Сделайте его исполняемым:

chmod +x mypythonscript

В crontab замените строку на

* * * * * /path/to/mypythonscript
1
ответ дан 31 July 2018 в 23:30

Вместо того, чтобы хранить определения переменных в двух местах, заверните свой программный вызов в простой скрипт bash, который отправит ваш ~/.bashrc:

#!/bin/bash
source $HOME/.bashrc
/usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1  

chmod +x сценарий и запустит его от вашего crontab.

1
ответ дан 22 May 2018 в 23:28

Вместо того, чтобы хранить определения переменных в двух местах, заверните свой программный вызов в простой скрипт bash, который отправит ваш ~/.bashrc:

#!/bin/bash source $HOME/.bashrc /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

chmod +x сценарий и запустит его от вашего crontab.

1
ответ дан 18 July 2018 в 14:42

Вместо того, чтобы хранить определения переменных в двух местах, заверните свой программный вызов в простой скрипт bash, который отправит ваш ~/.bashrc:

#!/bin/bash source $HOME/.bashrc /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

chmod +x сценарий и запустит его от вашего crontab.

1
ответ дан 24 July 2018 в 20:27

Вместо того, чтобы хранить определения переменных в двух местах, заверните свой программный вызов в простой скрипт bash, который отправит ваш ~/.bashrc:

#!/bin/bash source $HOME/.bashrc /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

chmod +x сценарий и запустит его от вашего crontab.

1
ответ дан 31 July 2018 в 23:30

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

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