При закрытии Терминала скрипт оболочки nohupped (с &) останавливается - PullRequest
0 голосов
/ 25 ноября 2018

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

screenshotScriptWOSleep.sh

    #!/bin/bash

    echo "Starting Screenshot Capture Script."
    echo "Process ID: $$"
    directory=$(date "+%Y-%m-%d-%H:%M")
    mkdir ${directory}
    cd ${directory}
    shotName=$(date "+%s")
    while true
    do
            if [ $( date "+%Y-%m-%d-%H:%M" ) != ${directory} ]
            then
                    directory=$(date "

+%Y-%m-%d-%H:%M")
                cd ..
                mkdir ${directory}
                cd ${directory}
        fi
        if [ $(( ${shotName} + 5 )) -eq $(date "+%s" ) ]
        then
                shotName=$(date "+%s" )
                screencapture -x $(date "+%Y-%m-%d-%H:%M:%S" )
        fi
done

Я запускал скрипт с помощью nohup ./screenshotScriptWOSleep.sh &

При закрытии окна терминала выдается предупреждение с «Закрытие этой вкладки приведет к завершению запущенных процессов: bash, date."

Я читал, что nohup относится и к дочернему процессу, но я застрял здесь.Благодаря.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Просто игнорируйте это предупреждение, ваш процесс не прекращается.проверить с помощью

watch wc -l nohup.out

0 голосов
/ 25 ноября 2018

Либо вы делаете что-то действительно странное, либо это относится к другим процессам.

nohup bash -c 'sleep 500' &

Завершите работу этого терминала;откройте еще один:

ps aux | grep sleep
409370294 26120     1   0  2:43AM ??         0:00.01 sleep 500
409370294 26330 26191   0  2:45AM ttys005    0:00.00 grep -i sleep

Как видите, сон еще продолжается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...