首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Plumber API在服务器上工作,但在设置systemd时不起作用

Plumber API 是一种用于构建和部署 Web API 的 R 语言包。它在服务器上正常工作,但在使用 systemd 设置服务时可能遇到问题。以下是解决此问题的步骤和原因分析:

基础概念

  • Plumber API: 一个 R 包,用于将 R 函数转换为 Web API。
  • systemd: Linux 系统初始化程序和服务管理器,用于管理系统服务。

可能的原因

  1. 权限问题: systemd 服务文件可能没有正确的权限。
  2. 路径问题: 环境变量或路径设置不正确。
  3. 依赖问题: 缺少必要的依赖库或 R 包。
  4. 配置问题: systemd 服务文件配置不正确。

解决步骤

1. 检查权限

确保 systemd 服务文件具有正确的权限。通常,服务文件应具有 644 权限。

代码语言:txt
复制
sudo chmod 644 /etc/systemd/system/plumber.service

2. 检查路径和环境变量

确保 R 和 Plumber 的路径正确,并且环境变量已正确设置。

代码语言:txt
复制
# /etc/systemd/system/plumber.service
[Unit]
Description=Plumber API Service
After=network.target

[Service]
User=your_username
Group=your_groupname
WorkingDirectory=/path/to/your/plumber/project
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
ExecStart=/usr/bin/Rscript /path/to/your/plumber/project/plumber.R
Restart=always

[Install]
WantedBy=multi-user.target

3. 安装依赖

确保所有必要的 R 包和依赖库已安装。

代码语言:txt
复制
sudo R -e "install.packages('plumber')"

4. 重新加载和启动服务

重新加载 systemd 配置并启动服务。

代码语言:txt
复制
sudo systemctl daemon-reload
sudo systemctl start plumber
sudo systemctl enable plumber

5. 检查日志

查看 systemd 日志以获取更多错误信息。

代码语言:txt
复制
sudo journalctl -u plumber

示例代码

以下是一个简单的 Plumber API 服务文件示例:

代码语言:txt
复制
# /etc/systemd/system/plumber.service
[Unit]
Description=Plumber API Service
After=network.target

[Service]
User=your_username
Group=your_groupname
WorkingDirectory=/home/your_username/plumber_project
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
ExecStart=/usr/bin/Rscript /home/your_username/plumber_project/plumber.R
Restart=always

[Install]
WantedBy=multi-user.target

参考链接

通过以上步骤,您应该能够解决 Plumber API 在 systemd 设置中不起作用的问题。如果问题仍然存在,请检查日志文件以获取更多详细信息,并根据错误信息进行进一步调试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

systemd调试

显示服务器启动的问题可能表现为tty1没有登录,但其他VT可以工作。 如果启动没有在任何一个虚拟控制台上显示登录信息就停止了,宣布它肯定卡住之前,让它重试最多5分钟。...你可能需要重新安装受影响软件包的工作版本。 如果 init=/bin/sh 不起作用,你必须从其他介质启动。...根据你的设置(例如在嵌入式系统),检查Linux内核配置选项CONFIG_DEVTMPFS和CONFIG_DEVTMPFS_MOUNT是否被设置。...假如有shell 当 systemd 运行到可以为你提供 shell 的程度,请用它来提取有用的信息进行调试。在内核命令行用这些参数启动。...如果这两个命令中的任何一个都不起作用,那就很可能是内核的问题,而不是 systemd 的问题。 关机最终完成 如果正常的重启或关机工作,但花费的时间可疑地长,那么 用调试选项启动。

1.3K20

你真的知道如何正确清除 DNS 缓存吗?( 附全平台详细教程 )

换句话说,每当你访问网站,你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录。这消除了对远程 DNS 服务器重复查询的需要,并允许你的 OS 或浏览器快速解析网站的 URL。...但是某些情况下,例如:对网络问题进行故障排除,或者更改 DNS 解析器之后,你将需要刷新 DNS 缓存。这将清除缓存的 DNS 条目,并根据新配置的 DNS 设置执行后续查找以解析域。... Linux 上清除/刷新 DNS 缓存 Linux ,除非已安装并运行诸如 Systemd-Resolved,DNSMasq 或 Nscd 之类的缓存服务,否则没有操作系统级 DNS 缓存。...$ sudo systemd-resolve --flush-caches 成功后,该命令不会返回任何消息。 Dnsmasq Dnsmasq 是轻量级的 DHCP 和 DNS 缓存名称服务器。...如果这对你不起作用,请尝试以下方法并暂时禁用 DNS 缓存。 打开一个新标签,然后 Firefox 的地址栏中输入 about:config 。

44.9K20
  • 第十六章.Linux系统管理-开机启动流程

    但是,不同的场合需要启动不同的程序,比如用作服务器,需要启动nginx,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...如果你图形界面下请按Alt + Shift + Ctrl + F1~F6 切换至命令窗口。  Linux 关机 linux领域内大多用在服务器,很少遇到关机的操作。...毕竟服务器跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。...GRUB 2安装在服务器硬盘的引导扇区中,配置为加载Linux内核和initramfs,initrd是一个初始根文件系统,将在Linux系统的实际根文件系统之前安装。...当系统启动,内核从initrd.img加载所有必要的内核模块和驱动器,以加载Linux7中的系统第一个进程systemd6里面,init是爸爸,7里面换了个爸爸,那就是systemd 下面的命令将帮助您找到

    2.4K20

    slurm--cgoup v2插件

    真正的问题:systemd和重启slurmd 在为Slurm设计cgroup/v2插件,最初的想法是让slurmd自己的cgroup目录中设置所需的层次结构。...所以,我们确实需要为用户工作启动一个新的单元。 实际 systemd 中,有两种类型的单元可以获得 "Delegate=yes "的参数,它们与 cgroup 目录直接相关。...当 slurmd 结束(因为支持的系统,它已经被 systemd 启动了),它的 cgroup 将只是被 systemd 清理。 层次结构概述 层次结构将采取这种形式: 图1....配置 配置方面,设置与之前的cgroup/v1插件没有太大区别,但在cgroup.conf中配置cgroup插件,必须考虑到以下因素。...配置查看你的config.log,看看它们是否在你的系统被正确检测到。

    1.9K10

    Hexo博客推荐安装的插件

    hexo-external-link 然后站点根目录的设置设置如下 hexo_external_link: enable: true enable_base64_encode: true...false 中文转拼音 地址https://github.com/viko16/hexo-permalink-pinyin npm i hexo-permalink-pinyin --save 然后站点根目录设置...TEMPLATE_NAME:邮件模板,目前内置了两款主题,分别为 default 与 rainbow 注: 配置自定义邮件服务器的话,请不要同时配置 SMTP_SERVICE。...当 SMTP_SERVICE 未配置才会启用自定义邮件服务 如何使用阿里云邮件推送 首先在阿里云创建好发信地址 类型选择:触发邮件 ? 发信地址随便写,然后设置好SMTP密码。...按照框框圈的设置好自己的配置即可 SMTP_USER:刚刚创建的发信地址 SMTP_PASS:刚刚设置的STMP密码 SMTP_HOST:使用阿里云提供的即可 smtpdm.aliyun.com SMTP_PORT

    1.3K20

    如何在Ubuntu加密你的信息:Vault入门教程

    您的服务器启用防火墙,如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。...SSL证书,我们将使用它来保护Vault的HTTP API,如何设置此证书取决于你是否拥有可解析该服务器的域名。...sudo cp vault /usr/local/bin/ 最后,二进制文件设置Linux标志。通过让二进制文件执行内存锁定而免除不必要的提权操作,这增加了额外的安全性。...要将Vault设置为系统服务,我们需要设置以下内容: Vault守护程序以系统用户运行 存储Vault信息的数据目录 Vault的配置文件 systemd配置文件。...vault status 服务器应返回400错误,表示服务器尚未初始化。 Error checking seal status: Error making API request.

    3K30

    Linux:为什么那么多人讨厌 Systemd

    SystemdLinux社区引起了无限争议。一些Linux用户对systemd的反对绝不屈从,还有一些Linux用户对systemd喜爱有加,还有很多人满不在乎。...近日,关于systemd的话题又出现在社区中,很多人分享了自己的想法。一兴起,笔者梳理了几个比较经典的回答。 为什么不喜欢systemd?...不断地听到很多人抱怨systemd有多么不好,但它还是被极大地普及了,并且我在网上所读到的很多文章都在介绍systemd的好处,比如更快的启动时间和更完善的日志记录,据说过去fedora-13开机速度测试...想想systemd最开始出现时,还是以一个纯粹的init软件的身份,之后短短的时间内大肆攻城略地,合并了很多进程,与Gnome暧昧不清,还设置API锁定。...这些观点大多数是不相关的,取决于具体的工作需求。即便很多人投诉systemd,但却没有更完美的替代品出现,这也是systemd迅速扩张的原因。

    1.9K20

    WireGuard 系列文章(五):Netmaker 简介-创建和管理 WireGuard 网络的平台

    Netmaker 做了很多工作来为您设置配置,这样您就不必设置配置了。... Linux ,默认情况下它作为守护进程运行,这需要 systemd。随着 Netmaker 的发展,systemd 将成为可能的服务管理选项之一,允许 netclient 更广泛的设备运行。...如果您需要在一个特定的系统运行 Netmaker 服务器,那么它很可能可以正常工作典型的部署中,它作为一个 Docker 容器运行。它也可以作为一个 systemd 服务运行。...Netmaker 服务器充当前端的 API,以及网络中计算机的 GRPC 服务器。GRPC 比标准的 API 调用更快、更高效,这提高了事务的速度。...在网络添加、删除和修改节点,会通知其他节点,并进行适当的更改。

    6.6K21

    如何在CentOS 7设置生产Elasticsearch集群

    本教程将向您展示如何在云服务器环境中CentOS 7安装和配置生产Elasticsearch集群。...这将允许您,本地使用Elasticsearch HTTP API 让每个服务器向localhost发送请求。如果您不包含此项,Elasticsearch将仅响应对V** IP地址的请求。...保存并退出 您的服务器现在已配置为构成基本Elasticsearch集群。您需要更新更多设置但在我们验证群集正常工作后,我们将会看到这些设置。...继续之前,让我们验证它是否正常工作。您可以通过从任何Elasticsearch节点查询Elasticsearch来执行此操作。...注意:确保仲裁计算中包括所有符合条件的节点,包括符合主条件的任何数据节点(默认设置)。 可以通过Elasticsearch HTTP API动态设置最小主节点设置

    1.3K00

    Next.js 越来越难用了

    getServerSideProps允许我页面加载前服务器端运行基础函数。 这些概念不仅功能强大,而且操作起来也十分简单。 API 路由与其他路由处理程序在外观和运作方式都很相似。...当框架未按预期工作 作为开发者,我们都曾有过这样的经历:面对代码难题,往往会感到困惑并大声问道:“为什么这不起作用?” 这种体验每个人都曾有过,而且总是让人沮丧。...对我来说,如果问题并非源于代码本身的 bug,而是源于对事物工作原理的误解,那就会更加令人头疼。 此时,你不再只是疑惑:“为什么这不起作用?”而是开始思考:“为什么它这样工作……而不是那样?”...而在处理 cookies ,你可以 React 渲染上下文中读取 cookies,但只能在变更上下文中(如服务器操作和路由处理程序)设置 cookies,因为一旦开始流式传输,就无法再设置 cookies... PropelAuth,我们经常收到的错误报告并非真正的错误,而是用户误以为自己发起了一个 API 调用,但实际只是读取了缓存的结果。

    16910

    如何在Debian 9安装和保护Redis

    本教程演示如何在Debian 9服务器安装,配置和保护Redis。...您可以按照我们的初始服务器设置指南进行设置。 没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。...在这里,您可以看到Redis正在运行并且已经启用,这意味着它设置为每次服务器启动启动。 注意:此设置适用于Redis的许多常见用例。...第一个命令尝试验证之前将密钥设置为值: set key1 10 这不起作用,因为您没有进行身份验证,因此Redis返回错误: (error) NOAUTH Authentication required...因此,尝试重命名命令请记住这一点。重命名命令的最佳时间是您不使用AOF持久性,或者安装后,即在部署Redis-using应用程序之前。

    2.1K30

    如何提高 Java 中锁的性能

    当同一间只有一个线 程尝试执行同步的代码区域,锁会保持非竞争的状态。 事实非竞争的情况下和大多数的应用中,JVM已经对同步进行了优化。非竞争锁在执行过程中不会带来任何额外的开销。...但是这种解决办法事实无论何时都要对玩家进入牌桌进行控制——即使是服务器的访问量较小的时候也是这样,那些等 待锁释放的线程注定会频繁的触发系统的竞争事件。...在上面的例子中,锁被声明为public(对外可见),这可能会使得一些别有用心的人通过在你精心设计的监视器加锁来破坏你的工作。...通过查看java.util.concurrent.locks 的API来看一下 有没有其它已经实现的锁策略,使用其改进上面的解决方案。 使用原子操作。在上面正在使用的简单递增计数器实际并不要求加锁。...最后一点,无论你是否正在使用Plumber的自动死锁检测解决方案,还是手动从线程转储获得解决办法的信息,都希望这篇文章可以为你解决锁竞争的问题带来帮助。

    1K10

    Hexo-Matery主题性能优化

    懒加载对服务器前端有一定的缓解压力作用 使用图片懒加载需要安装插件:hexo-lazyload-image npm install hexo-lazyload-image --save 之后站点配置文件下添加下面的代码...设置“,”应用 Keys”,找到你的appid和appke,配置到主题中valine配置的地方,启用valine ?...设置“,”安全中心”,”服务开关”,数据存储要打开。 Valine升级 ?...登录后台为刚刚设置的后台域名,如果登录不则在域名后面加上/sign-up 微信公众号通知 首先需要到 server 的官网,开启微信提醒并获取 SCKEY。...推送成功,会有如下终端提示! 如图39个链接推送成功 ? 谷歌收录 同样可以百度搜索引擎中输入:site:www.guixinchn.cn来查看网站是否被收录 如果没有,可以在下面提交网址 ?

    1.2K30

    Vue + Flask 实战开发系列(十)

    在次内容中,我们将把我们的项目部署一个生产服务器部署应用之前,需要在服务器安装好nginx。关于nginx的安装本文不做介绍。我们先从前端的部署开始。...Vue端现在已经可以正常工作了,现在让我们来看看Flask API开发过程中使用了 Flask 开发 web 服务器,但是这个服务器不够健壮,不适合生产使用。...: $ gunicorn -b 127.0.0.1:5000 api:app 由于此应用程序将在生产服务器运行,因此我们必须确保它始终在运行,因此从命令行启动应用程序实际是不够的。...大多数现代 Linux 发行版中,systemd 都是用于此目的的。...现在让我们/etc/systemd/system/目录下,创建一个vue-flask-app.service配置文件,然后输入下面内容: [Unit] Description=A simple Flask

    2.5K20

    Kubernetes 各个组件 启动参数介绍

    Kubernetes 中,每个控制器是一个控制回路,通过 API 服务器监视集群的共享状态, 并尝试进行更改以将当前状态转为期望状态。...--pod-eviction-timeout duration 默认值:5m0s 失效的节点删除 Pods 为其预留的宽限期。...客户端证书和密钥文件将存储 --cert-dir 所指的目录。 --kubeconfig string kubeconfig 配置文件的路径,指定如何连接到 API 服务器。...已弃用:应在 --config 所给的配置文件中进行设置。 kube-proxy Kubernetes 网络代理每个节点运行。...网络代理反映了每个节点 Kubernetes API 中定义的服务,并且可以执行简单的 TCP、UDP 和 SCTP 流转发,或者一组后端进行 循环 TCP、UDP 和 SCTP 转发。

    1.3K20

    Cluster API 真的是 Kubernetes 部署的未来吗?

    这基本意味着 Cluster API 为人们提供了一种创建和管理 Kubernetes 集群的方式,类似于他们 Kubernetes 中管理应用工作负载的方式。...Metal 是我们自己的针对裸机的 CAPI 提供商,可以对服务器进行全面管理(需要开关机,将它们添加到集群中,删除和擦除机器等)。...许多方面,必须深入了解 Cluster API 和特定提供程序提供的原语。这些原语因所选的提供程序而异,这可能会导致普通用户尝试了解其管理平面和预配系统感到困惑。...如果没有备用服务器用于滚动升级,也不起作用——而留下每个类别的昂贵服务器空闲,以及管理平面服务器,则会带来沉重的负担(如果在云提供商中运行集群,则不存在此问题)。 故障排除很困难。...我指的是沙漠地区运输一整个机架并希望它能正常工作的级别的断网。对于这些用户,要求额外的硬件来运行一个HA管理平面集群是资源的巨大浪费,或者某些情况下根本不可能,因为他们已经有一整个机架的服务器

    18710

    利用树莓派和低功耗显示器来跟踪你的家庭日程表

    虽然你可以使用手机和应用程序来关注所有事情,但在家中放置一个大型低功耗显示器以显示家人的日程不是更好吗?电子墨水日程表刚好满足!...最后,我需要一个相框来容纳整个设置。虽然背面看起来有些凌乱,但它能完成工作。 image.png 软件 我从 一个类似的项目 中获得了灵感,并开始为我的项目编写 Python 代码。...我需要从两个地方获取数据: 天气信息:从 OpenWeather API 获取 时间信息:我打算使用 CalDav 标准 连接到一个我家服务器运行的日程表 由于必须等待一些零件的送达,因此我使用了模块化的方法来进行输入和显示...,这样我可以没有硬件的情况下调试大多数代码。...我使用了一个基本的 树莓派系统 镜像,并将该应用程序配置到 systemd 服务,以便它可以在出现故障和系统重新启动依旧运行。 做完所有工作,我把代码上传到了 GitHub。

    95940

    Linux的运行等级 (run level)与目标(target)

    不同级别间切换可以使用命令 #init [运行级别] 比如当前运行在级别 3,是多用户字符界面,想要启动 GUI 图形界面,只需要输入 init 5 虽然运行级别可以实时切换,如果想修改系统启动默认的运行级别...和 init 相比,systemd 有一些明显的优势: 1) systemd 系统启动使用了并发的启动机制,而 init 是按顺序依次启动每项服务。实际很多服务之间没有依赖关系,不需要依次等待。...但随着硬件技术发展,现在的服务器CPU大多是多核心的,可以同时处理多项任务,systemd 可以并发启动那些不相关的服务,所以系统启动速度得到了极大的提升。...systemd 采用的方式是只有某个服务被请求才会启动它,使用完成后会动态将该服务关闭,所以不管是启动速度,还是系统资源的使用, systemd 都有很大的优势。... CentOS 5 和 6 中,系统启动默认的运行级别可以 /etc/inittab 文件中进行配置,但在 CentOS 7 中,我们打开这个配置文件看一下: ?

    5.1K30
    领券