На закрытии терминала в nohupped скрипт (с &) останавливается

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

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

Я запускал скрипт с, поЬир ./screenshotScriptWOSleep.sh &

При закрытии окна терминала, он предупреждает с «Закрытие этой вкладки прекращает запущенные процессы: Баш, дата.»

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

Всего 2 ответа


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

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

Как вы можете видеть, сон все еще работает.


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

watch wc -l nohup.out


Есть идеи?

10000