Перемещение текста в текстовых полях

Вот макет моей рабочей пуленепробиваемой версии. Это сделано для того, чтобы показать логику. Он работает на моем маршрутизаторе нормально.

#!/bin/sh

age_max_sec=50

LOCKFILE=lock.txt
if [ -e ${LOCKFILE} ]; then
    echo "lockfile exists"
    if kill -0 `cat ${LOCKFILE}`; then
        echo "script runs in mem" 
        lock_date=`date -r ${LOCKFILE} +%s`
        now=`date +%s`
        lock_age=$(($now-$lock_date))
        if [ $lock_ag e -gt $age_max_sec ]; then
            echo "DoubleDDNS (no2runKILL)"
            kill `cat ${LOCKFILE}`
        else
            echo "DoubleDDNS (no2runOK), age $lock_age seconds, quit this run"
            exit 1
        fi   
    else
        echo "not allready running, go ahead"
    fi
fi

echo "working on"

# overkill???? just in case, scorched earth check.
filename=${0##*/}
for pid in $(pidof $filename); do
    if [ $pid != $$ ]; then
        echo "DoubleDDNS (no3runKILL)"
        kill -9 $pid
    fi
done

# make sure the lockfile is removed when we exit and then claim it
trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
echo $$ > ${LOCKFILE}

# main program here

rm -f ${LOCKFILE}

echo "done"

Думаю, мне нужно использовать файл блокировки, если я хочу проверить возраст предыдущего запуска. Итак, создайте файл блокировки с помощью pid. Если файл блокировки не старше установленного лимита секунд, выйдите. Если он старше, убейте предыдущий экземпляр. На моем маршрутизаторе у меня нет лучших способов для проверок, которые я сделал.

Нужна ли мне проверка выжженной земли или это лишнее? После того, как законные проверки файлов блокировки выполнены, я перепроверяю, есть ли в памяти незавершенный, но сломанный процесс, и убиваю его, если он обнаружен. Проблема в том, что у меня нет способа протестировать его, пока в конце концов не произойдет реальная катастрофа, и регулярная очистка не поможет очистить его. Если не излишество ...

Следует отметить, что доступность службы NTP может повлиять на синхронизированные блокировки и таблетку для самоубийства. Например. мой первый запуск вышеупомянутого сценария произойдет примерно за 4 секунды до того, как NTP установит время. Итак, мы должны принять это во внимание.

Таблетка для самоубийства, предоставленная выше DopeGhoti, работает отлично. Итак, теперь остается только решить, какую комбинацию использовать. Или все они? Lockfile, релиз по времени, выжженная земля и самоубийство. Хм, звучит как излишество, но я не вижу, чтобы кто-то из них работал против других, но в идеальной (параноидальной) гармонии. Комментарии приветствуются.

3
20.04.2016, 01:44
1 ответ

Коротко: наверное, нет. Приложения на рабочем столе X Window читают символы клавиш и интерпретируют их в зависимости от приложения. Есть соглашения для символов клавиш (которым может следовать конкретный набор программ), но ничего, что навязывает их глобально.

1
27.01.2020, 21:30

Теги

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