Por que a declaração está trabalhando no terminal, mas não como script -- and-line campo com bash campo com scripts campo com systemd campo com services camp askubuntu Relacionado O problema

why is if statement working on terminal but not as script


2
vote

problema

português

Eu estou tentando fazer um script que verifica se um serviço estiver funcionando (SickQill neste caso) e se não iniciá-lo com SystemCTL.

meu código está funcionando como pretendido se eu a execute do terminal, mas quando eu tentar de um script bash, ele age se o serviço já estiver executando o eventhoughoughough's não está em execução ...

Eu não tenho ideia de por que isso é como o código que ainda é o mesmo.

Alguma idéia sobre por que isso é?

Meus comandos e resultados do shell:

   user@plex-webserver  § ~  sudo /opt/scripts/check-sickchill-service  sickchill.service is running   user@plex-webserver  § ~  sudo systemctl status sickchill.service  ● sickchill.service - SickChill Daemon      Loaded: loaded (/etc/systemd/system/sickchill.service; enabled; vendor preset: enabled)      Active: inactive (dead) since Sat 2020-09-19 08:11:31 UTC; 32s ago     Process: 636533 ExecStart=/usr/bin/python3 /opt/sickchill/SickChill.py -q --daemon --nolaunch --datadir=/opt/sickchill (code=exited, status=0/SUCCESS)  Sep 19 08:10:08 plex-webserver systemd[1]: Starting SickChill Daemon... Sep 19 08:10:10 plex-webserver systemd[1]: Started SickChill Daemon. Sep 19 08:10:10 plex-webserver python3[636549]: /opt/sickchill/sickchill/locale Sep 19 08:10:10 plex-webserver python3[636549]: /opt/sickchill/sickchill/locale Sep 19 08:10:10 plex-webserver python3[636549]: /opt/sickchill/sickchill/locale Sep 19 08:11:20 plex-webserver systemd[1]: Stopping SickChill Daemon... Sep 19 08:11:31 plex-webserver systemd[1]: sickchill.service: Succeeded. Sep 19 08:11:31 plex-webserver systemd[1]: Stopped SickChill Daemon.   user@plex-webserver  § ~  if (( $(ps -ef | grep -v grep | grep $SERVICE | wc -l) > 0 )) then         echo "$SERVICE is running" else         systemctl start $SERVICE         echo "restarted $SERVICE" fi ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to start 'sickchill.service'. Authenticating as: Username (user) Password: ==== AUTHENTICATION COMPLETE === restarted sickchill    

meu script (serviço de check-sickcill):

  #!/bin/bash SERVICE=sickchill.service  if (( $(ps -ef | grep -v grep | grep $SERVICE | wc -l) > 0 )) then         echo "$SERVICE is running" else         systemctl start $SERVICE         echo "restarted $SERVICE" fi    
english

I am trying to make a script that checks if a service is running (sickchill in this case) and if not start it with systemctl.

My code is working as intended if I execute it from the terminal, but when I try it from a bash script, it acts if the service is already running eventhough it is not running...

I have no idea why this is as the code it still the same.

Any ideas on why this is?

My shell commands and results:

 user@plex-webserver xeex82xb0 xc2xa7 ~ xeex82xb0 sudo /opt/scripts/check-sickchill-service  sickchill.service is running   user@plex-webserver xeex82xb0 xc2xa7 ~ xeex82xb0 sudo systemctl status sickchill.service  xe2x97x8f sickchill.service - SickChill Daemon      Loaded: loaded (/etc/systemd/system/sickchill.service; enabled; vendor preset: enabled)      Active: inactive (dead) since Sat 2020-09-19 08:11:31 UTC; 32s ago     Process: 636533 ExecStart=/usr/bin/python3 /opt/sickchill/SickChill.py -q --daemon --nolaunch --datadir=/opt/sickchill (code=exited, status=0/SUCCESS)  Sep 19 08:10:08 plex-webserver systemd[1]: Starting SickChill Daemon... Sep 19 08:10:10 plex-webserver systemd[1]: Started SickChill Daemon. Sep 19 08:10:10 plex-webserver python3[636549]: /opt/sickchill/sickchill/locale Sep 19 08:10:10 plex-webserver python3[636549]: /opt/sickchill/sickchill/locale Sep 19 08:10:10 plex-webserver python3[636549]: /opt/sickchill/sickchill/locale Sep 19 08:11:20 plex-webserver systemd[1]: Stopping SickChill Daemon... Sep 19 08:11:31 plex-webserver systemd[1]: sickchill.service: Succeeded. Sep 19 08:11:31 plex-webserver systemd[1]: Stopped SickChill Daemon.   user@plex-webserver xeex82xb0 xc2xa7 ~ xeex82xb0 if (( $(ps -ef | grep -v grep | grep $SERVICE | wc -l) > 0 )) then         echo "$SERVICE is running" else         systemctl start $SERVICE         echo "restarted $SERVICE" fi ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to start 'sickchill.service'. Authenticating as: Username (user) Password: ==== AUTHENTICATION COMPLETE === restarted sickchill 

My script (check-sickchill-service):

#!/bin/bash SERVICE=sickchill.service  if (( $(ps -ef | grep -v grep | grep $SERVICE | wc -l) > 0 )) then         echo "$SERVICE is running" else         systemctl start $SERVICE         echo "restarted $SERVICE" fi 
              
         
         

Lista de respostas


Perguntas relacionadas

6  Ubuntu 12.04 - eu posso ssh no servidor, mas o SSHD é um serviço não reconhecido  ( Ubuntu 12 04 i can ssh into the server but sshd is an unrecognized service ) 
Estou tentando configurar a autenticação baseada em ssh para o SSH no meu servidor Ubuntu 12.04 após este tutorial . que . Não está realmente funcionando,...

280  Como você reinicia o Apache?  ( How do you restart apache ) 
Eu mudei de Sles para o Ubuntu e agora quero reiniciar meu servidor local. Em sles eu usei: rcapache2 restart Mas isso de alguma forma parece não funci...

1  Como configurar o serviço Tomcat6  ( How to configure tomcat6 service ) 
Eu quero alterar os parâmetros de inicialização do Tomcat6 no Ubuntu, em execução como serviço. Eu quero dar mais memória. Qual é a melhor maneira de fazer ...

2  Pare o serviço durante a inicialização  ( Stop service during boot ) 
Ok, eu fiz uma coisa estúpida. Eu criei um arquivo de script que é suposto alterar a permissão em uma pasta durante a inicialização. Em vez disso, o script es...

5  Melhore o desempenho do sistema parando doseemons / serviços  ( Improve system performance by stopping daemons services ) 
. Eu estou tentando melhorar o desempenho do meu sistema removendo algum daemon / serviços. no meu desktop pc Eu preciso parar alguns daemons / serviços ...

1  Inicie o OpenVPN como um serviço Ubuntu 15.10  ( Start openvpn as a service ubuntu 15 10 ) 
Acabei de instalar o Ubuntu 15.10 e instalei o OpenVPN. Estou usando os mesmos arquivos .conf como eu tinha em 14.x no entanto, o serviço não vai começar a ...

0  Fazendo um serviço do projeto  ( Making a service from the project ) 
Oi eu tenho um servidor Java (ou escuta) que é executado quando eu faço: Fruto de compilação de formiga correr no terminal O que eu quero fazer é Sudo Servi...

2  Incapaz de purgar mysql -server  ( Unable to purge mysql server ) 
Eu sou novo para o Ubuntu. Eu estou tentando desinstalar o MySQL-Server, enquanto estou fazendo o processo de purga é preso na linha Renaming removed key_buf...

162  Comando para listar serviços que começam na inicialização?  ( Command to list services that start on startup ) 
Existe um comando para listar serviços que funcionam na inicialização? Eu imagino que envolva a análise :~$ sudo fdisk -l Device Boot Start End S...

10  Como faço para adicionar um daemon ao meu aplicativo rapidamente?  ( How do i add a daemon to my quickly application ) 
Eu estou construindo um aplicativo com rapidamente e eu queria adicionar um daemon que vai correr no fundo. Como você faz isso? ...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.