我正在尝试在 Windows 中设置一个简单的 beakr 服务,以实现 https://github.com/MazamaScience/beakr 中的示例.我能够从命令行成功运行脚本,并且能够使用 NSSM 在 Windows 中添加服务,但我无法启动该服务。
当我深入研究服务错误日志时,我发现 Rscript.exe 由于非特定权限问题而无法执行。
我的 Rscript.exe 用完了 C:\Program Files\R
如果有人在 Windows 中使用 R 成功实现了类似的服务(基于网页的 REST 端点),我很想知道您是如何做到的。
最佳答案
这就是我使用 latest pre-release version of NSSM 将 R 脚本作为服务运行时所做的。在 Windows 10 上:
在这个例子中:
C:\R\ServiceTest
ServiceTest.R
library(beepr)
# Test script : beeps every 10 seconds
while (T) {
beepr::beep(1)
if (interactive()) {
# Shows spin cursor to facilitate test in interactive mode
for (i in 1:10) {
if (i%%4==0) {cursor <- '/'}
if (i%%4==1) {cursor <- '-'}
if (i%%4==2) {cursor <- '\\'}
if (i%%4==3) {cursor <- '|'}
cat('\r',cursor)
flush.console()
Sys.sleep(1)
}
} else {
Sys.sleep(10)
}
}
我曾经让这种脚本在我桌面上打开的控制台中运行,以定期检查各种警报。ServiceTest.bat
Rscript ServiceTest.R
C:\R\ServiceTest>ServiceTest.bat
C:\R\ServiceTest>Rscript ServiceTest.R
|
取消批处理 (Ctrl+C)nssm install
C:\R\ServiceTest\ServiceTest.bat
C:\R\ServiceTest\
ServiceTest
并启动它:如果一切顺利,就是这样! nssm remove ServiceTest
这很好地取代了我在桌面后台运行的许多 R 控制台。我看不出它不能与 REST 端点一起使用的原因。
关于R beakr 脚本作为 Rscript Windows 10 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63405874/