crontab触发的脚本与用户执行的脚本不同

时间:2019-02-08 23:04:30

标签: c# cron mono raspberry-pi3

我在具有Raspian的Raspberry Pi 3 B +上具有C#ConsoleApp.exe。该程序执行简单的过程,它下载并比较一些数据,然后将其发布到论坛页面。当我在Windows 10上启动该程序时,一切都很好,并且可以正常工作而没有问题。

在Raspian上,我使用Mono跨平台仿真器启动程序,然后在上下文菜单中右键单击运行.exe并使用Mono(终端)启动,并在其中使用命令“ mono /home/pi/Desktop/app.exe”终端或当我执行带命令以通过mono内部启动应用程序的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开始,并且还在桌面上写入文本文件,但是它不会发布到网页。我在程序中使用C#Http.Client。

您知道问题出在哪里吗?因为我认为问题是cron在后台运行程序,与我自己执行脚本或在Terminal中运行脚本不同。

感谢答案!

Http.Client代码:

  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);
            }

0 个答案:

没有答案