(полный Windows noob здесь, я использую Linux с детства)
Если я просто бегу:
C:\Progra~1\R\R-3.4.0\bin\x64\Rscript.exe C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\code_15.R
в терминале DOS сервера windows как администратор работает нормально.
Теперь мне нужно запустить этот скрипт как услугу (политика места, которое платит мне еду);
Я немного поискал в Интернете и поместил это в терминал DOS сервера Windows:
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
из оконного терминала. Я запустил RegEdit и нашел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyFirstService
Я создал ключевой параметр
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyFirstService\Parameters
Внутри него я создал новую строку Application типа REG_SZ и value_data:
C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\rrr.bat
Затем я перехожу в «Службы», нахожу MyFirstService и щелкаю правой кнопкой мыши «Выполнить»;
я получил
Error 2: The system could not find the file specified
Ожидается, что службы будут отвечать на запросы запуска / остановки очень специфическим образом, а cmd.exe не может этого сделать; раньше существовала "служебная оболочка", которая инкапсулировала общий исполняемый файл как службу, она была снабжена Комплект ресурсов Windows Server, найдите SRVANY.EXE, я понятия не имею, будет ли он работать с более новыми ОС или есть альтернативы, но попробовать стоит.
OP решил проблему, используя запланированную задачу, запускающую пакетный файл, а не службу.
ОП здесь: Коллега предоставил следующее:
schtasks /create /sc ONCE /tn OP /tr C:\Users\NPX9sx9000010190CAL\Desktop\el_leo\R.bat /st 09:35