Крон автоматизировал сценарий удара для запущения выполненный 1 скрипт удара затем другой плюс проверка целостности

Попытайтесь смотреть в/usr/share/X11/xkb/symbols, как описано на setxkbmap странице справочника. Опции могут быть найдены в различных файлах, попытаться делать a grep -rinH alts_toggle /usr/share/X11/xkb. /usr/share/X11/xkb/rules/xorg.xml похож на хороший выбор.

1
06.08.2013, 08:53
1 ответ

Необходимо смочь сделать что-то вроде этого:

#/usr/bin/env bash

## We will use this function later to check if 
## everything has been correctly started.
function check_if_init_OK {
    ## You will need to edit this to add whatever services
    ## you have to check for.
    c=0; ## This is a counter, initialized to 0

    ## For each of the service names you are interested in.
    ## to add more, just put them after freeswitch, separated by a
    ## space they way they are now (e.g. a b c).
    for service in freeswitch foo bar baz; do

      ## Every time this loop is executed, $service will be
      ## one of the services you put in the list above. The
      ## script will run screen -ls and search for the name of the
      ## service. If it finds it, it will increment the counted $c by one.
      ## That is the meaning of '&&' in bash, x &&y means do y if x 
      ## was successful.
      screen -ls | grep $service >/dev/null 2>/dev/null && let c++; 
    done
    ## This just makes the function return $c which at this point
    ## will be how many of the the services you gave in the list have 
    ## been found.
    echo $c
}

## Run the first script -> stop app
script1.sh &

## Wait until it has stopped running
while screen -ls | grep script1.sh; do sleep 1; done 

## Run the second script -> start app and wait 15 seconds
script2.sh && sleep 15

## Check that everything has started OK. The function
## will return the number of services of interest that
## are up and running. While this is less than the number
## of services of interest, re-run script2.sh and check again.
## This loop will run the check_if_init_OK function until the 
## number returned (the number of running services of interest) is
## 3. You should change the 3 to reflect the actual number of services 
## you are looking for. So, as long as some services have not started,
## run script1.sh and then script2,sh and check if this time eveything
## has started OK. This loop will only exit when everything is working OK.
while [ "$(check_if_init_OK)" -ne 3 ];do
   script1.sh &&  script2.sh
done
1
27.01.2020, 23:53
  • 1
    Спасибо за обширный ответ :). Вы смогли бы обеспечить ссылку, таким образом, я вижу то, что код в функции check_if_init_OK делает, а также код, касающийся ожидания, пока script1 не закончился перед хождением дальше к script2? Единственная вещь состоит в том, если бы все сервисы правильно не запускались, то я должен выполнить script1 (остановка) снова прежде, чем работать, script2 (запускаются), потому что, если я выполняю script2, не работая script1, он иногда заставляет сервисы, такие как направляющие появляться дважды вместо однажды на экране-ls. –  Damainman 06.08.2013, 20:53
  • 2
    @Damainman пожалуйста. Действительно ли это более ясно теперь? Я не уверен, какой уровень знаний удара Вы имеете. –  terdon♦ 06.08.2013, 21:12
  • 3
    Потрясающий! Определенно имеет больше смысла. У меня действительно нет знания сценариев удара в данный момент. Таким образом, я ожидал, в то время как функция внизу для цикличного выполнения всего сценария, если все услуги не работали. Я должен ожидать до окончания часов работы для проверения этого, но двух быстрых вопросов.. 1. что делает сон cmd, выполняют "##, Ожидают, пока он не прекратил выполнять" раздел? 2. Существует ли способ сказать, что чему-то нравится, ожидают спустя 15 секунд после выполнения script2.sh прежде, чем проверить, работают ли все услуги? Я иногда замечал, что процессы не появляются на экране-ls до нескольких секунд. –  Damainman 06.08.2013, 21:27
  • 4
    @Damainman В целом в мире Unix, man command стекла Вы страница руководства для command. Взгляните на man sleep, сон просто говорит удару ожидать указанная сумма секунд. Так, sleep 1 есть ли, таким образом, Вы не лавинно рассылаете ЦП с запросами, но ожидаете секунда между каждым. Функция не циклично выполняет сценарий, но скрипт запущен снова, если функция не показывает, что все хорошо. Я добавил a sleep 15 заставить его ожидать 15 секунд. –  terdon♦ 06.08.2013, 21:34
  • 5
    Потрясающий! обновит это сообщение, как только я получаю шанс использовать его сегодня вечером. –  Damainman 06.08.2013, 21:49

Теги

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