2013-04-26 2 views
0

Я написал консольное приложение в моно для linux.Приложение для консольного перезапуска Mono

я должен начать его с

«SUDO моно App.exe»

есть какой-то вешать, чтобы перезапустить приложение, когда что-то происходит.

Например, я запускаю это приложение на малине Pi, и когда приложение обнаруживает некоторое напряжение на специальном контакте ввода-вывода, приложение должно перезапускаться автоматически.

Пожалуйста, помогите мне.

ответ

0

В Windows вы можете использовать cmd.exe для выполнения сценария. В этом блоге автор просит CMD подождать некоторое время, а затем удалить исполняемый файл,

http://blog.pedroliska.com/2010/05/20/c-self-destruct-windows-app/

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

var startInfo = new ProcessStartInfo(); 
startInfo.FileName = "cmd.exe"; 
startInfo.RedirectStandardInput = true; 
startInfo.UseShellExecute = false; 
startInfo.CreateNoWindow = true; 

var process = new Process(); 
process.StartInfo = startInfo; 
process.Start(); 

// The delay is just making sure the exe to delete is done 
// running. 
var delayPings = 2; 
var exeName = AppDomain.CurrentDomain.FriendlyName; 
process.StandardInput.WriteLine("(ping -n " + delayPings + " 127.0.0.1) && (CALL " + exeName + ")"); 

Теперь для Linux, вам просто нужно использовать bash (или другой Shell), чтобы заменить cmd, а также изменить команду, переданные ему.

Смежные вопросы