Запуск программы несколько раз при сохранении одного процесса - PullRequest
0 голосов
/ 13 февраля 2019

Возможно, это вопрос "Я не знаю, о чем спрашиваю", поэтому, если мне нужно что-то узнать, сообщите мне.

При запуске программы с аргументами или без (исключая путь к программе/ имя аргумента) запускается один процесс.Мы можем запустить программу несколько раз, поэтому будет запущено несколько процессов.И я ищу способ сохранить один процесс при запуске программы несколько раз.Что-то вроде синглтона.например,

В псевдокоде:

...
bool tasksCompleted = false;
...
while !tasksCompleted{
    input = waitForNewInputFromConsole();
    launch_new_thread(HandleInput, input);
}

И в консоли:

>do_cool_stuff a b c - one process is launched, arguments a, b and c are passed, now HandleInput is handling them in new thread nad we're now wating for new input from console.
>do_cool_stuff x y - we have still one process, and x and y are passed, HandleInput is handling them in new thread, we're again waiting for more data.

Если вы знаете, что я имею в виду, и можете помочь мне с этим, пожалуйста, сделайте это.

Спасибо заранее, ура.

1 Ответ

0 голосов
/ 13 февраля 2019

Дайте мне посмотреть, смогу ли я перефразировать вопрос.У вас есть программа Foo.Возможно, из командной строки кто-то говорит «Фу все время».Он запускает программу Foo.

Затем человек говорит: «Foo me again» и запускает Foo второй раз.

Но вместо этого вы не хотите, чтобы он запускал вторую копию.но как-то подать аргументы первой программе?Если я понимаю, что вы спрашиваете: вы действительно не можете.

То, что вы МОЖЕТЕ сделать, это заставить Фу быть действительно, очень умным.Вторая копия обнаружит, что копия уже запущена, передаст данные и выйдет.Вы можете сделать это с помощью общей памяти, данных, используемых на диске, или настроить сокет, чтобы попытаться поговорить с ним.Но тогда ваша программа должна будет спросить себя, работает ли она и может ли она принимать больше данных.Много работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...