Сценарий оболочки для остановки службы tomcat, если служба elasticsearch также остановлена

#sh #ubuntu-18.04

Вопрос:

Я использую ubuntu 18.04 LTS, и у меня есть две небольшие ситуации

  1. Я хочу написать сценарий, который проверит, не запущена ли служба elasticsearch, тогда этот сценарий также остановит службу tomcat.
  2. Также я хочу запускать скрипт каждые 5 секунд.

Я могу выполнить 2-ю задачу с помощью crontab, но вот небольшой поворот: я хочу удерживать сценарий crontab в течение 30 секунд, когда система загружается/перезагружается(потому что для запуска службы elasticsearch требуется немного времени).

Я думаю, что я не могу использовать здесь режим сна, потому что тогда он будет каждый раз задерживать выполнение на 30 секунд.

Для 1 — го задания сценарий, который я сейчас использую, таков:

 #!/bin/sh
command = $(/bin/ps -ef|/bin/grep -c /var/run/elasticsearch/elasticsearch.pid)
if [ ${command} == 1 ];
then
    service tomcat stop
fi
 

Это ошибка, которую я получаю.

 ./myscript.sh: 2: ./myscript.sh: =: not found
./myscript.sh: 3: [: ==: unexpected operator
 

ОБНОВЛЕНИЕ-1:

Мой первый сценарий запущен, но не работает должным образом, это означает, что он останавливает службу tomcat, даже если служба elasticsearch работает, но я хочу написать сценарий, который остановит службу tomcat, только если служба elasticsearch не запущена.

Я уверен, что это какая-то логическая ошибка.

 #!/bin/sh
command=$(/bin/ps -ef|/bin/grep -c /var/run/elasticsearch/elasticsearch.pid)
echo $command
if [$command=1];
then
    echo "ok"
fi
 

Получение ошибки:

 ./myscript.sh: 4: ./myscript.sh: [2=1]: not found
 

ОБНОВЛЕНИЕ-2: Я изменил свое утверждение if, и оно сработало

 if [ "$command" = 1 ];
 

Теперь кто-нибудь знает, как решить 2-ю ситуацию.

Комментарии:

1. Вокруг ни одного свободного места = .

2. [ у него нет == оператора. Ты, наверное, хочешь = .

3. Обратите внимание, что в вашем сообщении говорится sh , что вы пометили вопрос Bash. Они (не совсем) одинаковы.

4. (На самом деле нет никакой причины использовать переменную и grep -c ; if ps -ef | grep -q ... было бы достаточно.)

5. Шеллчек -твой друг.