我闪亮的服务器在哪里

我闪亮的服务器在哪里
  1. 我是linux新手。
  2. 我尝试使用 ubuntu WSL 在 Windows 计算机上本地部署闪亮的服务器。
  3. 我在 Windows 计算机上成功安装了 ubuntu WSL,并且可以启动 ubuntu。
  • 到目前为止我来到这里:

tarjae@DESKTOP-LNI8ONS:~$

  • 如果我输入dir我会得到这个:
R       rstudio-server-latest-amd64.deb    shiny-server-1.5.17.973-amd64.deb.1
app1.R  shiny-server-1.5.17.973-amd64.deb

从现在开始,发生的一切对我来说都是随机的,具体取决于我经历的教程!

所以我的问题是:

  1. 如何检查我是root还是普通用户? (基本管理linux命令的来源)?
  2. 我闪亮的服务器在哪里?
  3. 我怎样才能启动服务器sudo start shiny-server不工作->
tarjae@DESKTOP-LNI8ONS:~$ sudo start shiny-server
[sudo] password for tarjae:
sudo: start: command not found
  1. 最后我该如何开始app1.R

我深知这一切都是工资。但我希望能够为我的目的迈出下一步。任何指导建议都将受到高度赞赏。

更新1:

dpkg-query -l shiny节目

dpkg-query: no packages found matching shiny

  • 之后sudo apt install ./shiny-server-1.5.17.973-amd64.deb显示:
Note, selecting 'shiny-server' instead of './shiny-server-1.5.17.973-amd64.deb'
shiny-server is already the newest version (1.5.17.973).
0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded. 

更新2:

tarjae@DESKTOP-LNI8ONS:~$ dpkg-query -l | grep shiny

我得到:

ii  shiny-server                   1.5.17.973                            amd64        Shiny Server
  • 然后与
tarjae@DESKTOP-LNI8ONS:~$ systemctl start shiny-server

我得到:

tarjae@DESKTOP-LNI8ONS:~$ systemctl start shiny-server
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

更新3:

tarjae@DESKTOP-LNI8ONS:/home/shiny$ sudo service shiny-server start

我得到:

tarjae@DESKTOP-LNI8ONS:/home/shiny$

什么都没发生。最近几天,我读了一篇博客,其中我应该创建一个新用户,我这样做了,通过这个新用户,我可以在 localhost:3838 上看到一些内容。很抱歉耽误您时间了!

如果我做:

tarjae@DESKTOP-LNI8ONS:~$ service shiny-server status
#OR
tarjae@DESKTOP-LNI8ONS:~$ sudo service shiny-server status
# I get:
tarjae@DESKTOP-LNI8ONS:~$ 

答案1

很高兴听到你可以在 Droplet 上使用它。我自己在 WSL2/Ubuntu 上尝试了一下,肯定存在一些问题。

老实说,考虑到您对 Linux 的陌生程度,您在分析竞争方向方面做得非常好。您已经以完全正确的顺序尝试了完全正确的事情。我可以在这里解释一下为什么它们不起作用,并且希望如何让它运行。

对于您的“Update2”:
systemctl start shiny-server

是的,这是启动它的“正常”方法,但systemctl需要 Systemd,如果不使用一些 hack 变通方法,它在 WSL2 上无法工作。Systemd 是当今大多数 Linux 发行版的 init 机制,但 WSL 需要自己的机制/init来设置与 Windows 的紧密集成(请参阅这个答案有关/init和 的更多详细信息这个有关 WSL2 下 Systemd 的更多信息)。

对于您的“Update3”:
sudo start shiny-server

再说一遍,你是绝对正确的。许多应用程序和发行版仍然为早于 Systemd 的 SysVInit 系统提供“旧式”初始化脚本。那些脚本将要通常使用该命令在 WSL2(甚至 WSL1)上运行service

然而,这些初始化脚本通常已经很长时间没有维护或未经测试了。在这种情况下,初始化脚本中存在明显的错误导致其失败。这个错误甚至会阻止它在“正常”(非 WSL)Ubuntu 上运行。

脚本中的两行导致它在启动之前就失败了:

DAEMON=shiny-server
[ -x "$DAEMON" ] || exit 0

这基本上是说,“文件‘shiny-server’是否存在且具有可执行权限?如果不存在,则退出脚本。”

不幸的是,它没有提供小路shiny-server。将第一行更改为...

DAEMON=/opt/shiny-server/bin/shiny-server

...允许它工作,至少对于service shiny-server start

$ pgrep -x shiny-server
$ sudo service shiny-server start
$ pgrep -x shiny-server
7184

也就是说,除此之外似乎还有更多问题,因此重新启动服务也会失败,并且status两者都不支持。

请注意,servicesystemctl都是某种“便捷”方法。您完全可以自己处理这个问题,特别是对于像shiny.

您可以查看/etc/init.d/shiny-server/opt/shiny-server/config/systemd/shiny-server.service查看这些文件正在做什么,尽管随着您获得 Linux 经验,这无疑会更容易。

至少它可以运行,尽管我还没有真正尝试过它以了解其中的功能在那时是否有效。不过,如果您确实遇到其他问题,我相信我们可以在 WSL2 上解决它们。这“只是”知道去哪里寻找的问题。

答案2

根据评论,您似乎可以在 WSL 上打开 tcp 端口。所以问题肯定出在systemd上。显然 WSL 没有将其用作 init。也许你可以手动启动闪亮服务器。

相关内容