Ubuntu

我閃亮的伺服器在哪裡

  • December 27, 2021
  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:~$ 

很高興聽到你讓它在液滴上工作。我自己在 WSL2/Ubuntu 上試了一下,肯定有一些問題。

老實說,鑑於您對 Linux 的了解程度,您在分析競爭方向方面做得很好。你已經以正確的順序嘗試了正確的事情。我可以在這裡解釋為什麼它們不起作用,並且希望如何讓它執行。

對於您的“Update2”:
systemctl start shiny-server

是的,這是啟動它的“正常”方法,但systemctl需要 Systemd,如果沒有一些 hacky 變通辦法,它在 WSL2 上不起作用。Systemd 是當今大多數 Linux 發行版的初始化機制,但 WSL 需要它自己/init的機制來設置其與 Windows 的緊密集成(有關更多詳細資訊,請參閱答案,有關 WSL2 下的 Systemd 的更多資訊,請參閱此答案)。/init

對於您的“Update3”:
sudo start shiny-server

再說一次,你是絕對正確的。許多應用程序和發行版仍然為早於 Systemd 的 SysVInit 系統提供“老式”初始化腳本。這些腳本通常service使用該命令在 WSL2(甚至 WSL1)上執行。

但是,通常這些初始化腳本已經太久未維護或未經測試。在這種情況下,init 腳本中有一個明確的錯誤導致它失敗。這個錯誤甚至會阻止它在“正常”(非 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 上解決它們。這“只是”知道在哪裡看的問題。

引用自:https://unix.stackexchange.com/questions/683878