оконечный сценарий

# Check if VPNC is already running, otherwise start it
if ( ps -ef | grep -v grep | grep -v vpnc_ondemand | grep -v less | grep vpnc > /dev/null ) ; then
    echo "Shell script is already running then dont run this script and terminate the script".

exit                
else 

echo "run the other part of script "

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

Или этот код, который я уже написал, выполнит его, что я ищу

1
задан 10 November 2017 в 16:57

2 ответа

Если бы Вам нужен этот вид контрольного управления, я обратился бы к Выскочке. Создайте новый файл путем выполнения sudoedit /etc/init/vpnc.conf и копия в чем-то как следующее:

start on (started networking)
respawn
exec /usr/sbin/vpnc --no-detach

И затем просто sudo start vpnc запустить его в первый раз, когда (и это автоматически запустит после этого). Выскочка отследит процесс его PID. Никакой scripthackery не требуется.

2
ответ дан 7 December 2019 в 14:09

Используя предложение @muru вот сценарий удара, которые делают то, что Вы хотите:

#!/usr/bin/env bash

process='vpnc$'

if pgrep $process > /dev/null; then # Here we are using the fact that if pgrep returns 0, the process is running
    echo "Shell script is already running then dont run this script and terminate the script".
    exit 1 # A number different of zero is good to point out that something went wrong
else
    echo "run the other part of script "
fi

Но ответ от @Oli лучше подходит для того, что Вы подвергаете сомнению, похож на него, intented (управление программой на сервере).

0
ответ дан 7 December 2019 в 14:09

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

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