在启动时运行 R 脚本

2024-03-14

首先,这可能需要移至超级用户。我无法决定哪个场地更好。

我正在尝试编写一个将在启动/重新启动时运行的 R 脚本,并将该计算机添加到池中doRedis http://cran.r-project.org/web/packages/doRedis/index.html工人。 (doRedis 是一个foreach http://cran.r-project.org/web/packages/foreach/index.html后端)。

这是我的 R 脚本“~/Rworker.R”

#Define Parameters
require(multicore)
Host <- 'ip_of_doRedis_Server'
cores <- multicore:::detectCores()
TO <- 24*3600

#Start Workers
require('doRedis')
startLocalWorkers(cores,'jobs',host=Host,port=6379, timeout = TO)

我可以使用以下命令从命令行运行此脚本sudo R CMD BATCH ~/Rworker.R ~/RLog.

接下来,我编写了一个 shell 脚本来运行 R 脚本,标题为“/etc/init.d/StartWorkers.sh”

#!/bin/sh
sudo echo "Starting R workers"
sudo R CMD BATCH ~/Rworker.R ~/RLog

我使这个 shell 脚本可执行,使用chmod +x StartWorkers.sh。当我跑步时./StartWorkers.sh一切都运行良好,R 会话启动,并且工作人员被添加到池中。

现在,我需要在启动/重新启动机器时运行这个 shell 脚本,所以我输入update-rc.d StartWorkers.sh defaults。该命令似乎有效,但我收到以下警告: 'update-rc.d:警告:/etc/init.d/StartWorkers.sh 缺少 LSB 信息'

但是,通过 rcconf 检查确认“StartWorkers.R”位于启动列表中。

但是,当我重新启动计算机时,脚本无法运行。我究竟做错了什么? shell 脚本从命令行运行良好,但当我尝试在启动时运行它时失败。

/编辑:好的,根据德克的回答,我安装了更少的内容,并将“StartWorkers.sh”更改为以下内容:

#! /usr/bin/r

#Define Parameters
require(multicore)
Host <- 'zachec2.dyndns.org'
cores <- multicore:::detectCores()
TO <- 24*3600

#Start Workers
require('doRedis')
startLocalWorkers(cores,'jobs',host=Host,port=6379, timeout = TO)

但是当我运行它时,我得到以下输出:

Loading required package: utils
Loading required package: multicore
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called 'multicore'
Error in loadNamespace(name) : there is no package called 'multicore'
Calls: ::: ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

我知道我的系统上安装了多核!

/EDIT2:我必须将所有 R 包移至cd /usr/lib/R/site-library现在更小的 shell 脚本可以工作了。我将脚本添加到/etc/rc.local它启动完美!


这是一个 R 问题,也是一个 Ubuntu 系统管理问题。以下是几点:

  1. 对于简单的启动任务,我建议仅使用/etc/rc.local您可以在其中添加职位。

  2. 我只是不喜欢R CMD BATCH这就是为什么杰夫·霍纳和我写了littler http://dirk.eddelbuettel.com/code/littler.html这给了你/usr/bin/r以及更简单的 R 脚本。 R本身也给你Rscript;任何一个都优于R CMD BATCH.

  3. 要测试脚本,只需以 root 身份运行它们即可。一旦它们工作,将它们添加到/etc/rc.local.

希望这可以帮助。这r-sig-debianlist 也是 Ubuntu / Debian 技巧的一个很好的来源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在启动时运行 R 脚本 的相关文章

  • 展平具有复杂嵌套结构的列表

    我有一个具有以下示例结构的列表 gt dput test structure list id 1 var1 2 var3 4 section1 structure list var1 1 var2 2 var3 3 Names c var1
  • 如何创建热图来说明控制发散调色板中心颜色位置的网格差异?

    我有两个人脸 3D 网格 我希望使用热图来说明差异 我想使用红蓝发散色阶 我的数据可以查到here https github com Patricklv How to create heatmap illustraing 3D mesh d
  • 对 git Push 运行单元测试,对 Pull 请求运行集成测试

    在构建 R 包时 我们使用 testthat 来编写测试 我们有 2 个文件 特定包的测试文件 特异性R 我们用它来确保所有包继续一起工作并且总体结果良好 整体R 当前 当我们推送到 github 或通过 Travis 创建 PR 时 都会
  • 在 grid.text 中使用 pch 字符

    我使用 ggplot2 创建了一个图表 现在我想让图例不在图表上 而是在图表外的网格中 我现在的问题是 是否有人知道是否有可能在 grid text 中使用 pch 符号 Here is an image to show what I wa
  • R data.table 计算行数,直到达到值

    我想在 data table 中返回一个新列 该列显示在达到低于当前值 Temp 的值之前有多少行 library data table set seed 123 DT lt data table Temp runif 10 0 20 这就
  • 匹配较大向量中的序列

    我想要一个函数 它返回向量的匹配子序列的初始索引 例如 y lt c a a a b c multi match c a a y 1 1 2 multi match c a b y 1 3 我有一个粗略的实现 但我觉得我必须重新发明轮子 而
  • 具有可变宽度的重叠条形图/直方图

    I have chr totgenes FST gt 0 4 FST gt 0 4 exFST gt 0 4 exFST gt 0 4 inFST gt 0 4 inFST gt 0 4 chrtotlen 1 1457 49 3 3630
  • R:函数中使用的 ggplot2 未反映字体大小变量的变化

    我经常需要将多个不同大小的相同 ggplot2 图表输出到 png 文件 通过使用输出高度和宽度 以像素为单位 的变量 可以轻松生成每个 png 文件的大小 对于 ggplot2 部分 我使用字体大小和某些其他元素的变量 并设置一个简单的循
  • 根据另一个输入限制闪亮的应用程序输入

    我有一个基本的闪亮应用程序可以评估A B library shiny ui lt fluidPage numericInput inputId A label A value 5 step 1 sliderInput inputId B l
  • 如何使用 grid.arrange 排列绘图的变量列表?

    library ggplot2 df lt data frame x 1 10 y rnorm 10 p1 lt ggplot df aes x y geom point plist lt list p1 p1 p1 p1 p1 In my
  • 从 Vowpal Wabbit 的内存中读取数据?

    有没有办法发送数据来训练 Vowpal Wabbit 中的模型而不将其写入磁盘 这就是我正在尝试做的事情 我有一个相对较大的 csv 数据集 大约 2gb 可以毫无问题地容纳在内存中 我将它在 R 中加载到数据框中 并且有一个函数将该数据框
  • 寻找跨多维数组实现 logSumExp 的更快方法

    我正在编写的一些 R 代码中有一行非常慢 它使用 apply 命令在 4 维数组中应用 logSumExp 我想知道有什么办法可以加快速度 Reprex 这可能需要 10 秒或更长时间才能运行 library microbenchmark
  • 删除单元格中的重复条目 - R

    我在这里到处搜索 并尝试了重复和独特的功能来解决我要问的问题 但没有任何效果 假设我有一个名为 company 的数据框 其状态可变 当我折叠行时 我在状态变量观察之一中留下以下输出 PA PA PA TX TX 我怎样才能删除单元格内的重
  • 常见的 R 习语 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 R 习惯用法与 Java 和 Python 习惯用法一样 有哪些好的资源 我主要推荐R地狱 http
  • 将列拆分为多列

    对于下面给出的数据 data1 lt structure list var1 c 2 7 2 6 7 2 7 2 7 1 7 1 7 1 5 1 2 7 1 5 1 7 1 2 3 4 5 6 7 1 2 4 6 Names var1 cl
  • 如何在 R 和 RStudio 中构建 pdf 小插图

    我是编写 R 包的新手 我正在尝试学习如何为我的包裹制作小插图 我创建了一个小插图文件夹 其中包含文件 getting started Rmd title WaterML Tutorial author Jiri Kadlec date r
  • 无法在 R 中安装插入符号包(在我的 Linux 机器中)

    我在尝试在 R 中安装插入符号包时遇到以下错误 g error tmp Rtmp2Tos7n R INSTALL2e6e30153a74 nloptr nlopt 2 4 2 lib libnlopt cxx a No such file
  • unnest_longer 给出美元符号而不是正常的小标题

    任何人都可以解释以下差异 library tidyverse tribble id c 1 10 gt unnest longer id gt mutate data map x id mtcars gt unnest longer dat
  • 在R包/.Rd文件中搜索unicode字符

    如何在 R 包或特定文件中搜索特定的 unicode 字符 我使用的是 RStudio IDE 我正在尝试向 CRAN 提交包裹 所有检查均通过 但以下情况除外 W checking PDF version of manual 49 5s
  • 在 dplyr 过滤器中引用同名的列和变量

    鉴于这种情况 id a df lt tibble id c a b c value c 1 2 3 df gt dplyr filter id id 我预计最后一行的输出与df gt dplyr filter id a 但它仍然指的是id作

随机推荐

  • 删除 MySQL 中列的最后两个字符

    我有一个 SQL 列 其中的条目是字符串 我需要在修剪最后两个字符后显示这些条目 例如如果条目是199902345它应该输出1999023 我尝试查看 TRIM 但看起来只有当我们知道最后两个字符是什么时 它才会提供修剪 但就我而言 我不知
  • 流星铁路由器嵌套路由

    我有两个具有一对多关系的流星集合 建筑物和空间 在我的建筑页面上 我想显示与建筑相关的空间 现在 我是这样做的 buildingsRoute coffee BuildingController RouteController extend
  • Ruby 1.9 Base64 编码写入文件错误

    我收到以下错误 Encoding UndefinedConversionError x81 from ASCII 8BIT to UTF 8 下面的内容都在 Ruby 1 8 7 中工作 所以我认为这与 Ruby 1 9 处理编码的方式有关
  • 从 MAC 转换为 IPv6

    我想了解如何将 MAC 地址转换为 IPv6 地址 例如 00 01 04 76 2A 5C 应该成为 FE80 0201 04FF FE76 2A5C 有人可以详细说明一下转换吗 我们假设本地机器的自动配置没有随机参数 逐步转换 http
  • 独立应用程序中的 Spring Security

    如何在独立应用程序中使用 Spring Security 我只需要使用 Spring Security 的身份验证部分 我需要根据 Windows Active Directory 对用户进行身份验证 网络上有很多在 Servlet 中使用
  • 如何在 3 维空间中找到凸包

    给定一组点S x y z 如何找到convex hull那些点 我尝试理解该算法here http wcipeg com wiki Convex hull 但拿不到太多 It says 首先将所有点投影到 xy 平面上 并通过选择具有最高
  • Objective-C 中面向方面的 HTTP 身份验证示例

    我正在寻找一些示例 技巧 建议以及一些用于实现 或查找其实现 面向方面的 HTTP 身份验证库的一般方向感 作为一些基础工作 我们构建了一个 iOS 库 该库为 HTTP 服务建立各种形式的身份验证 通过 Web 表单或本机模式窗口请求用户
  • Python 3 中 getstatusoutput 的替换

    由于命令模块自 Python 2 6 起已被弃用 我正在寻找替换的最佳方法命令 getstatusoutput http docs python org library commands html highlight commands co
  • Java Stream 在单循环中以声明方式分别按多个字段进行分组

    我用谷歌搜索了它 但我主要发现了按聚合字段分组或改变流响应的情况 但没有找到下面的情况 我有课User有字段category and marketingChannel 我必须以声明式风格编写一个方法 该方法接受用户列表并根据category
  • 删除列表中间的项目时,React 渲染错误的数据

    我有一个嵌套字段数组设置使用react hook form here https codesandbox io s compassionate galileo nkz71 请注意 我的实际代码有点复杂 但问题在这里显示是一样的 我遇到的问题
  • 在 Node.js 中反序列化后重新将对象与其类关联

    我正在为一些特定于应用程序的对象编写一个简单的序列化 反序列化框架 考虑以下 use strict function Dog name this name name Dog prototype constructor Dog Dog pro
  • 为什么用 MSVC 构建的 Python DLL 不能用 mod_wsgi 加载?

    我最近从 Python 2 5 更新到 2 7 在麻烦期间尝试了 2 6 虽然从命令行或 Django runserver 中一切正常 但 mod wsgi 无法加载任何包含使用 MSVC 构建的 DLL pyd 的模块 例如 如果我构建自
  • 删除指定目录中所有大小为零的文件[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 提前致谢 我想删除指定目录中的所有零大小文件 你能告诉我如何在 Ubuntu 操作系统上执行此操作的命令吗 谢谢 穆克蒂亚尔 find size 0c
  • for循环中断内的Javascript切换;冲突

    我在 JavaScript 中使用循环嵌套了 switch 如下所示 for var i 0 i lt checkBoxIds length i if checkBoxIds i prop checked var id checkBoxId
  • 使用knitr和latex在Beamer中代码块字体大小

    我正在尝试获取一些 R 代码以适合我的投影仪幻灯片 似乎无法通过更改字体大小size代码块的参数 就像您对其他knitr类型文档所做的那样 唯一的方法似乎是与 footnotesize在每个代码块之前 这让人沮丧 因为我有很多代码块 在很多
  • 请求的资源 () 不可用。 (下载 JSF 2.0 项目后运行 Tomcat 7.0 时)

    我在 eclipse 3 6 中创建了一个新的动态 Web 项目 我添加了 Tomcat 7 0 服务器并在 jsf 文件上选择 在服务器上运行 工作正常 我将其添加到 SVN 存储库以与其他人共享 我关闭 Eclipse 我创建了一个新的
  • 如何使用 blas 以最佳方式转置矩阵?

    我正在做一些计算 并对不同 BLAS 实现的优势和弱点进行一些分析 但是我遇到了一个问题 我正在测试 cuBlas 在 GPU 上执行 linAlg 似乎是一个好主意 但有一个问题 cuBlas 实现使用列主格式 并且由于这不是我最终需要的
  • 推入数组后变量值发生变化[重复]

    这个问题在这里已经有答案了 所以我正在测试这段代码 我在网络控制台中得到以下输出 value 0 Array Object value 1 Array Object Object 数组中的所有对象都具有完全相同的值 name value 1
  • UdpClient 在广播地址上接收

    在 c 中 我使用 UdpClient Receive 函数 public void StartUdpListener Object state try udpServer new UdpClient new IPEndPoint IPAd
  • 在启动时运行 R 脚本

    首先 这可能需要移至超级用户 我无法决定哪个场地更好 我正在尝试编写一个将在启动 重新启动时运行的 R 脚本 并将该计算机添加到池中doRedis http cran r project org web packages doRedis i