У меня есть скрипт, выполняемый crontab каждый час и взаимодействующий с API (синхронизация базы данных). Обычно это займет один час или около того, и я проверить при следующем запуске, если этот процесс до сих пор в памяти или нет:Как гарантировать удаление файла после того, как скрипт перестает работать?
#/usr/bin/env python
import os
import sys
pid = str(os.getpid())
pidfile = "/tmp/mydaemon.pid"
if os.path.isfile(pidfile):
print "%s already exists, exiting" % pidfile
sys.exit()
file(pidfile, 'w').write(pid)
try:
# Do some actual work here
finally:
os.unlink(pidfile)
но через некоторое время скрипт перестал работать, когда я смотрю на «пс Окс | Grep python ", я не вижу этот сценарий как процесс, но я вижу файл на месте. И когда я запускаю скрипт вручную, я вижу, что информация напечатана итеративно на экране, но через некоторое время я вижу слово «Terminated», сценарий завершен и файл все еще находится на месте.
Как обеспечить 100% удаление файла после того, как скрипт перестает работать?
Спасибо!