Автоматически скрывать терминал, не убивая запущенный процессPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Автоматически скрывать терминал, не убивая запущенный процесс

Сообщение Anonymous »

Меня попросили запустить скрипт Python из планировщика задач Windows.
В моем скрипте Python я в основном буду использовать библиотеку сторожевого таймера, чтобы создать экземпляр и запустить наблюдателя, который будет отслеживать изменения файла в определенном пути к каталогу
file_handlers.py

Код: Выделить всё

import time
import logging

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

from elaboration_directory import FILE_PROCESS_DIR

logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

class FileHandler(FileSystemEventHandler):

def on_created(self, event):
if not event.is_directory:
file_path = event.src_path
logger.info('File added. File path: "%s"' % file_path)

class ElaborationFolderWatcher(object):

def start(self):
event_handler = FileHandler()
observer = Observer()
observer.schedule(event_handler, path=FILE_PROCESS_DIR, recursive=False)
observer.start()
logger.info('Observer: started')

try:
while True:
# keep observer active
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()

if __name__ == '__main__':
logger.info('Python script started')
elaboration_folder_watcher = ElaborationFolderWatcher()
elaboration_folder_watcher.start()
Моя проблема в том, что когда я запускаю сценарий из планировщика задач, открывается терминал, и если я его закрываю, он убивает процесс (и наблюдателей).
Мне нужна команда, которую я могу запустить в пакетном сценарии, позволяющая мне закрыть терминал, не убивая процесс, или, по сути, любое решение, которое одновременно закроет терминал и сохранит активность наблюдателя. Возможно?
Дополнительные примечания:
  • Реализация предназначена для запуска на Windows Server. 2016 или более поздней версии.
  • Изначально я реализовал это с помощью библиотеки pywin32, а именно win32serviceutil.ServiceFramework. В этом случае я установил скрипт service_run.py
    и настроил унаследованный класс ServiceFramework, который запускал ElaborationFolderWatcher при запуске службы, а затем настроил запуск службы при запуске. действительно позволило бы мне обойти эту проблему с «открытым терминалом», поскольку в этом сценарии окно терминала вообще не откроется, НО мне, вероятно, нужно переключиться на выполнение файла Python через скрипт .bat по причине, по которой я' Я не буду здесь объяснять напрямую.


Подробнее здесь: https://stackoverflow.com/questions/787 ... ng-process
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как запустить процесс в C# на Linux, где процесс запуска может закончиться, не убивая дочерний процесс?
    Anonymous » » в форуме Linux
    0 Ответы
    119 Просмотры
    Последнее сообщение Anonymous
  • Как убить все подгруппы, но не убивая ток -процесс оболочки
    Anonymous » » в форуме Linux
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как остановить процесс, запущенный более одного раза
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как отправить событие Ctrl+C в процесс .exe, запущенный Python в Windows 10?
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как отправить событие Ctrl+C в процесс .exe, запущенный Python в Windows 10?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»