【问题标题】:Running Cronjob under cygwin在 cygwin 下运行 Cronjob
【发布时间】:2012-06-02 17:31:39
【问题描述】:

我有需要使用 cygwin crontab 运行的脚本。

所以我做了什么。

使用 cygwin setup.exe 安装了两个额外的 cygwin 包

Cron 和 cygrunsrv

然后在安装新的crontab

* * * * * sh /housekeeper.sh -t CPS 

因为我无法得到housekeeper.sh的输出,所以我检查了

cronevents.exe

这给了我以下错误消息。

2012/05/28 18:22:01 [SYSTEM] /usr/sbin/cron: PID 3880: (CRON) error (can't switc
h user context)

谁能帮我解决这个问题。

提前感谢您的帮助

【问题讨论】:

    标签: linux unix cron scheduled-tasks crontab


    【解决方案1】:

    此错误出现在 Windows 应用程序事件日志中,因为运行服务的帐户无法切换用户上下文(请参阅http://www.davidjnice.com/cygwin_cron_service.html

    将运行服务的用户更改为必须运行脚本的真实用户。

    【讨论】:

      【解决方案2】:

      看起来您的 cron 将第 6 个单词 (sh) 视为运行命令的用户名。尝试使用

      * * * * * yourusername /path/to/script.sh options
      

      并确保 script.sh 正确设置其 PATH,因为 cron 可能根本没有设置任何 PATH

      【讨论】:

        【解决方案3】:

        如果您有多个用户,并且想要运行此程序,那么: 无密码切换用户上下文的三种方法, 方法 1:从头开始创建令牌 方法二:LSA认证包 方法三:带密码

        我在这里解释方法 2。 尝试命令“cyglsa-config” 另外,将登录设置为本地系统帐户。 并重新启动系统。

        Image for LogOn option to be set for cron deamon service 更多详情:https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-nopasswd1

        【讨论】:

        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 2018-03-18
        • 1970-01-01
        • 2022-01-20
        相关资源
        最近更新 更多