r - 如果上一个会话意外关闭,RInno 闪亮的应用程序将无法启动
问题描述
我使用令人惊叹的RInno包为 Windows 制作了一个桌面闪亮的应用程序,但我在启动该应用程序时遇到了一些不一致的问题。有时应用程序不会正确退出其会话,使 R 在后台运行。他们的 github 建议在服务器函数中使用这段代码来确保 R 在会话结束时正确终止。我可以知道应用程序何时正确退出,因为我包含一个自定义函数,该函数将日志文件复制到新的索引名称以进行记录和调试。
if (!interactive()) {
session$onSessionEnded(function() {
write_logs_out() #My custom function. renames logs and stores backups of session data in .rds files
stopApp()
q("no")
})
}
在这些情况下,不会创建一个新的日志文件,所以我假设stopApp()
并且q("no")
永远不会执行,让 R 在后台运行。一个主要问题是我不知道如何重现此错误。我目前的猜测是,当本地 R 会话无响应时会发生这种情况。虽然 R 仍在后台运行,但闪亮的应用程序从未完全打开到网络浏览器。我首先需要打开任务管理器并退出任何 R 会话(通常名称为“R 前端”),以使应用程序再次运行。
由于我不知道如何预期这个随机错误,我想知道是否有任何 Windows 专家可以帮助我编写一个脚本来检查 R 进程是否正在运行,然后将其杀死。这至少会
我知道
tasklist | findstr Rscript.exe
将列出所有当前正在运行的 Rscripts(我相信这是我在任务管理器中看到的“R 前端”),但我不知道在taskkill /IM "Rscript.exe" /F
调用 .wsf 文件的行之前简单地包含是否是不好的做法启动应用程序。
我看到的主要问题是,如果会话运行良好并且用户出于某种原因再次单击应用程序,它将强制完全重启。
有什么建议么?
解决方案
推荐阅读
- mysql - 错误 1292 (22007):使用更新 stmt 时截断不正确的 INTEGER 值:“我的表中的第一个非整数结果”
- jquery - Django,jquery,基于数据库的自动完成,改进
- r - 矩阵中的错误:“dimnames”[2] 的长度不等于 Shiny App 上的数组范围
- html - 移除元素级显示:无使用 CSS
- python - 前 n 行的平均值
- sslhandshakeexception - 如果 Mutual TLS 失败,对客户端的响应应该是什么?
- angularjs - AngularJS 错误注入器将我发送到 https://code.angularjs.org/
- typeorm - TypeORM queryBuilder 链接
- sql - 使用 for 循环假脱机到 .csv 文件
- react-native - 函数返回未定义反应本机