Выполняйте функцию каждые X минуты - Python

У меня было то же самое сегодня, и, основываясь на ответе Диомидиса, вот как я это сделал (linux debian 6.0.7). Может быть, это могло бы помочь вам:

#!/bin/bash

echo "getting script inode"
inode=`ls -i ./script.sh | cut -d" " -f1`
echo $inode

echo "getting the script size"
size=`cat script.sh | wc -c`
echo $size

echo "executing script"
./script.sh &
pid=$!
echo "child pid = $pid"

while true; do
        let offset=`lsof -o0 -o -p $pid | grep $inode | awk -F" " '{print $7}' | cut -d"t" -f 2`
        let percent=100*$offset/$size
        echo -ne " $percent %\r"
done
12
задан mouche 27 June 2009 в 11:04
поделиться

2 ответа

Не используйте такой цикл со спящим режимом, он заблокирует gtk от обработки любых событий пользовательского интерфейса, вместо этого используйте таймер gtk, например,

def my_timer(*args):
    return True# do ur work here, but not for long

gtk.timeout_add(60*1000, my_timer) # call every min
23
ответ дан 2 December 2019 в 03:54
поделиться

Это точно так же, как мой ответ здесь

Если время не критично, чтобы быть точным десятые доли секунды, используйте

glib.timeout_add_seconds(60, ..)

, как указано выше.

10
ответ дан 2 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

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