Myślę, że twój pomysł jest dokładnie tym, czego potrzebujesz. Na przykład:
import time
def do_something():
with open("/tmp/current_time.txt", "w") as f:
f.write("The time is now " + time.ctime())
def run():
while True:
time.sleep(60)
do_something()
if __name__ == "__main__":
run()
Połączenie z numerem time.sleep(60)
spowoduje uśpienie programu na 60 sekund. Po upływie tego czasu system operacyjny obudzi Twój program i uruchomi funkcję do_something()
, a następnie odłoży ją do trybu uśpienia. Podczas gdy twój program śpi, nie robi nic bardzo efektywnie. Jest to ogólny wzorzec do pisania usług w tle.
Aby rzeczywiście uruchomić z wiersza poleceń, można użyć &:
$ python background_test.py &
Kiedy robi to każde wyjście ze skryptu trafi do tego samego terminala, jak ten, który rozpoczął się od. Możesz przekierować wyjście tego uniknąć:
$ python background_test.py >stdout.txt 2>stderr.txt &
To zależy od tego, co chcesz. Jeśli chcesz zaplanować powtarzanie zadania co jakiś czas, spójrz na crona. – Falmarri