编辑

编辑

(我是完全的 Windows 菜鸟,从小就使用 Linux)

如果我只是运行:

C:\Progra~1\R\R-3.4.0\bin\x64\Rscript.exe  C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\code_15.R

在 Windows 服务器 DOS 终端以管理员身份运行,一切正常。

现在我需要将此脚本作为服务来运行(向我支付食物的地方的政策);

我在互联网上查了一下,并将其放入 Windows 服务器 DOS 终端中:

sc create myRScript5 binPath= "cmd.exe /c C:\Progra~1\R\R-3.4.0\bin\x64\Rscript.exe  C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\code_15.R" DisplayName= "My R script 5" 

该服务已正确显示在列表中。我右键单击并按“开始”。我得到:

Error 1053: The Service did not respond to the start request 

我也尝试了一些或多或少有启发的变体,例如:

sc create myRScript3 binPath= "C:\Progra~1\R\R-3.4.0\bin\x64\Rscript.exe \"C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\progtest.R\"" DisplayName= "My R script 3" 

我肯定做了一些愚蠢的事情,但我不知道是什么。FWIW 这里是 code_15.R

setwd("C:/Users/NPX9sx9000010190CAL/Desktop/el_leo")


library(doSNOW)

print('boom')
set.seed(123)
x = runif(10)
write.table(x, 'yahoo.txt')

编辑

我正在尝试 SqlACID 解决方案(可能在某个地方搞砸了)。

我安装了 srvany。

我创建了一个文件

C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\rrr.bat 

包含:

C:\Progra~1\R\R-3.4.0\bin\x64\Rscript.exe  C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\code_15.R

我以管理员身份启动 Windows 终端并运行:

sc create "MyFirstService" binPath= "C:\Temp\SrvAny.exe" start= auto

我明白了

[SC] CreateService SUCCESS

从 Windows 终端。我启动 RegEdit 并发现

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyFirstService

我创建了一个关键参数

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyFirstService\Parameters

在其中,我创建了一个类型为 REG_SZ 的新字符串应用程序,并带有 value_data:

C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\rrr.bat

然后,我进入服务,找到 MyFirstService 并右键单击运行;

我有

Error 2: The system could not find the file specified

答案1

服务需要以非常具体的方式响应启动/停止请求,而 cmd.exe 无法做到这一点;曾经有一个“服务包装器”,可以将通用可执行文件封装为服务,它随附了Windows Server 资源工具包,寻找 SRVANY.EXE,我不知道它是否可以在较新的操作系统上运行或者是否有替代方案,但值得一试。

OP 通过使用运行批处理文件而不是服务的计划任务解决了该问题。

OP 在这里:一位同事贡献了以下内容:

schtasks /create /sc ONCE /tn OP /tr C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\R.bat /st 09:35

相关内容