Как запустить python scipt в фоновом режиме (после ввода пользователя), даже если терминал закрыт - PullRequest
0 голосов
/ 28 января 2020

У меня есть сценарий python, который принимает некоторые входные данные от пользователя и затем выполняет код на основе входных данных. Код занимает некоторое время для завершения; во время выполнения этого кода пользователь может закрыть терминал (код запускается с компьютера Linux). Как только пользователь закрывает терминал, сценарий также останавливается. Я знаю, что есть такие опции, как nohup, но он не принимает никаких входных данных (если в моем сценарии требуется ввод данных).

Как это исправить?

Требование -

  1. Запустите скрипт, введите входные данные

  2. Пусть код работает в фоновом режиме, даже если терминал закрыт

  3. Также есть способ записать все, что печатается в терминале (во время выполнения скрипта), в какой-то файл

Ответы [ 2 ]

1 голос
/ 30 января 2020

Linux экран tmux послужил моей цели.

0 голосов
/ 28 января 2020

Возможен обходной путь, вы можете разбить свою программу на две части. И запустите фоновое задание с:

import os
usr_inp=input("test input: ")

os.popen(f"python3 background_task.py {usr_inp} &")

Это должно запустить другую программу в фоновом режиме, там вы можете использовать ввод через переменную sys.argv [1].
(Обычно это не рекомендуется используя os.popen)

...