Я запускаю программу С#.net под mono в Unix, и я ищу для управления или изменения поведения программы после ее запуска.
Я напишу новые функции в программу, поэтому мне просто нужно запускать их без перезапуска программы.
Я думаю, что могу позволить программе принимать такие сообщения, как SOAP, но чувствую, что это может застраховать. Возможно, было бы лучше, если бы я мог управлять программой локально из отдельной программы, но я не уверен, с чего начать.
Есть ли способ дать инструкции в программу после ее запуска без отдельной программы или если отдельная программа является решением, кто-нибудь знает, с чего начать?
Благодарю!
Я думаю, вы можете создать некоторую форму пользовательского интерфейса в своем приложении, и вы сможете контролировать свое приложение с помощью этого пользовательского интерфейса. Если он не используется, вы можете скрыть эту форму в лотке.
Или вы можете использовать второе приложение и отправить некоторые сообщения в свое первое приложение, используя, например, сокеты.
Обычно это делается в программах Unix (ссылка), отправляя сигнал SIGHUP и позволяя программе интерпретировать это как команду для перезагрузки файла конфигурации.
Отправка сигнала может быть выполнена с терминала или скрипта с помощью команды Unix kill
(которая названа так, потому что сигнал по умолчанию - SIGTERM, чтобы запросить завершение процесса).
Так вы отправляете SIGHUP в процесс с определенным PID:
kill -HUP [pid]
Вы можете использовать моно- UnixSignal для обработки этих сигналов Unix в.NET-программе. Один из способов - использовать .WaitOne
для ожидания сигнала в выделенном потоке. Другой способ - регулярный опрос .IsSet
или .Count
.