Меня попросили запустить скрипт 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 по причине, по которой я' Я не буду здесь объяснять напрямую.
Меня попросили запустить скрипт Python из планировщика задач Windows. В моем скрипте Python я в основном буду использовать библиотеку сторожевого таймера, чтобы создать экземпляр и запустить наблюдателя, который будет отслеживать изменения файла в определенном пути к каталогу [b]file_handlers.py[/b] [code]import time import logging
from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler
from elaboration_directory import FILE_PROCESS_DIR
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() [/code] Моя проблема в том, что когда я запускаю сценарий из планировщика задач, открывается терминал, и если я его закрываю, он убивает процесс (и наблюдателей). [b]Мне нужна команда, которую я могу запустить в пакетном сценарии, позволяющая мне закрыть терминал, не убивая процесс, или, по сути, любое решение, которое одновременно закроет терминал и сохранит активность наблюдателя. Возможно?[/b] Дополнительные примечания: [list] [*]Реализация предназначена для запуска на Windows Server. 2016 или более поздней версии.
[*]Изначально я реализовал это с помощью библиотеки pywin32, а именно win32serviceutil.ServiceFramework. В этом случае я установил скрипт service_run.py и настроил унаследованный класс ServiceFramework, который запускал ElaborationFolderWatcher при запуске службы, а затем настроил запуск службы при запуске. действительно позволило бы мне обойти эту проблему с «открытым терминалом», поскольку в этом сценарии окно терминала вообще не откроется, НО мне, вероятно, нужно переключиться на выполнение файла Python через скрипт .bat по причине, по которой я' Я не буду здесь объяснять напрямую.
У меня есть приложение C#, которое работает в Linux. В какой -то момент он должен запустить другое приложение в качестве отдельного процесса, а затем выйти из себя.
Каждый раз, когда я пытаюсь сделать это, новый процесс умирает со старым. Я...
Я пытаюсь подключиться к лабораторному оборудованию, которое передает данные на мой компьютер через TCP. Поставщик оборудования предоставил .exe-файл, который запускается с аргументами для настройки установки. Когда пользователь хочет завершить...
Я пытаюсь подключиться к лабораторному оборудованию, которое передает данные на мой компьютер через TCP. Поставщик оборудования предоставил .exe-файл, который запускается с аргументами для настройки установки. Когда пользователь хочет завершить...