Некоторые команды, не выполняющиеся в сценарии оболочки при использовании crontab

Я имею сценарий оболочки для перезапуска некоторый сервис в рубиновом файле, уничтожаю процесс и работаю, и это - работа. Я хочу выполнить этот сценарий оболочки каждый час, таким образом, я поместил удар команд в crontab, крон, работающий каждый час, но мой сценарий оболочки только выполняется, уничтожают процесс, три последних команды, которые выполняются, 3 рубиновых файла не выполняются.

restart.sh

sudo pkill -9 -f '/home/myuser/.rvm/rubies/ruby-2.4.0/bin/ruby /home/myuser/subscribe.rb'
sudo pkill -9 -f '/home/myuser/.rvm/rubies/ruby-2.4.0/bin/ruby /home/myuser/retry1.rb'
sudo pkill -9 -f '/home/myuser/.rvm/rubies/ruby-2.4.0/bin/ruby /home/myuser/retry2.rb'
sleep .5
nohup /home/myuser/.rvm/rubies/ruby-2.4.0/bin/ruby /home/myuser/subscribe.rb &!
nohup /home/myuser/.rvm/rubies/ruby-2.4.0/bin/ruby /home/myuser/retry1.rb &!
nohup /home/myuser/.rvm/rubies/ruby-2.4.0/bin/ruby /home/myuser/retry2.rb &!

crontab

0 */1 * * * bash -lc "/home/myuser/restart.sh"
0
задан 24 August 2018 в 19:09

1 ответ

Наконец, я нашел решение.

Точка проблемы не является разрешением, но в другой среде оболочки, чем крон выполняется в, особенно петляйте.

Так как я - использование rvm для управляют рубиновыми версиями, таким образом, я нашел пример

#!/usr/bin/env bash

# load rvm ruby
source /usr/local/rvm/environments/ruby-2.1.1@projectX

bundle install
ruby /path/to/script.rb
rake do something

источник: https://rvm.io/integration/cron#example-script

Так, я изменил свой сценарий оболочки, похож:

#!/usr/bin/env bash
sudo pkill -9 -f 'ruby /home/myuser/subscribe.rb'
sudo pkill -9 -f 'ruby /home/myuser/retry1.rb'
sudo pkill -9 -f 'ruby /home/myuser/retry2.rb'
sleep .5
source /home/mysuser/.rvm/environments/ruby-2.4.0
nohup ruby /home/myuser/subscribe.rb &
nohup ruby /home/myuser/retry1.rb &
nohup ruby /home/myuser/retry2.rb &
0
ответ дан 28 October 2019 в 02:20

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

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