У меня есть C # ConsoleApp.exe на Raspberry Pi 3 B + с Raspian.Эта программа выполняет простой процесс, загружает и сравнивает некоторые данные, а затем публикует их на веб-странице дискуссионного форума.Когда я запускаю эту программу в Windows 10, все в порядке и работает без проблем.
В Raspian я запускаю программу с кросс-платформенным эмулятором Mono, а когда запускаю .exe, щелкаю правой кнопкой мыши в контекстном меню и начинаю сMono (Terminal), с командой «mono /home/pi/Desktop/app.exe» в терминале или когда я запускаю script.sh с командами для запуска приложения изнутри, он также работает так же, как в Windows 10.
Проблема: мне нужно запускать эту программу каждый день утром / днем / вечером.В Windows 10 я использовал Task Scheduler, а в Raspian я использовал Cron.
Команда Cron: 18 7 * * * /home/pi/script.sh
script.sh: #!/bin/bash
mono /home/pi/Desktop/app.exe
Я не запускаю команду cron: 18 7 * * * mono /home/pi/Desktop/app.exe
, поскольку программа не запускается.
Это забавно, потому что программа действительно запускается каждый день в 7:18, а также записывает текстовый файл на рабочем столе, но она не создает POST на веб-странице.Я использую C # Http.Client в программе.
Знаете ли вы, в чем проблема?Потому что я думаю, что проблема в том, что cron запускает программу в фоновом режиме, и это не то же самое, что я выполняю скрипт самостоятельно или запускаю его в Терминале.
Спасибо за ответы!
Http.Client Code:
public static async Task writeNewAsync()
{
HttpClient client = new HttpClient(new HttpClientHandler { UseCookies = false });
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://imhd.sk/po/pridaj-prispevok.php");
request.Content = new StringContent("id=44&typ=0&parent=-1&login=User&heslo=password&text=TEST1", Encoding.UTF8, "application/x-www-form-urlencoded");
client.DefaultRequestHeaders.Add("Cookie", "cookie_notice=1");
client.SendAsync(request);
}