- 저는 리눅스를 처음 접했습니다.
- 우분투 WSL을 사용하여 Windows 컴퓨터에 로컬로 빛나는 서버를 배포하려고 합니다.
- 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
이제부터 일어나는 모든 일은 내가 어떤 튜토리얼을 진행하느냐에 따라 나에게 무작위로 일어납니다!
그래서 내 질문은 다음과 같습니다
- 내가 루트인지 일반 사용자인지 어떻게 확인하나요? (기본 관리 Linux 명령의 소스)?
- 내 빛나는 서버는 어디에 있나요?
- 작동하지 않는 서버를 시작하려면 어떻게 해야 합니까?
sudo start shiny-server
->
tarjae@DESKTOP-LNI8ONS:~$ sudo start shiny-server
[sudo] password for tarjae:
sudo: start: command not found
- 결국 어떻게 시작하나요?
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
Droplets에서 사용할 수 있다는 소식을 들으니 기쁩니다. WSL2/Ubuntu에서 직접 시도했는데 확실히 몇 가지 문제가 있었습니다.
솔직히 말해서, 당신이 Linux를 처음 접한 것을 고려하면 경쟁이 어디로 향하는지 분석하는 데 꽤 훌륭한 성과를 냈습니다. 당신은 정확히 올바른 순서로 올바른 일을 시도했습니다. 여기서 설명할 수 있어요왜그들은 작동하지 않으며 작동시키는 방법을 알고 싶어합니다.
"업데이트2"의 경우:
systemctl start shiny-server
예, 이것이 시작하는 "일반적인" 방법이지만 systemctl
Systemd가 필요하며 일부 해킹 해결 방법 없이는 WSL2에서 작동하지 않습니다. Systemd는 오늘날 대부분의 Linux 배포판의 초기화 메커니즘이지만 WSL에는 /init
Windows와의 긴밀한 통합을 설정하기 위한 자체 메커니즘이 필요합니다 (참조:이 답변에 대한 /init
자세한 내용 및이것WSL2의 Systemd에 대한 자세한 내용)
"업데이트3"의 경우:
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
둘 다 지원되지 않습니다.
service
및 둘 다 systemctl
일종의 "편리한" 방법이라는 점에 유의하세요 . 특히 shiny
.
/etc/init.d/shiny-server
이러한 파일이 수행하는 작업을 보거나 볼 수 있지만 /opt/shiny-server/config/systemd/shiny-server.service
Linux에 대한 경험이 쌓이면 의심할 여지 없이 더 쉬워집니다.
적어도 작동합니다. 비록 실제로 그 기능이 그 시점에서 작동하는지 확인하기 위해 시도하지는 않았지만 말입니다. 그러나 다른 문제가 발생하면 WSL2에서 문제를 해결할 수 있다고 확신합니다. 어디를 봐야 할지를 아는 것은 "그냥" 문제입니다.
답변2
의견에 따르면 WSL에서 TCP 포트를 열 수 있는 것 같습니다. 따라서 문제는 systemd에 있어야 합니다. 분명히 WSL은 이를 초기화로 사용하지 않습니다. 반짝이는 서버를 수동으로 시작할 수도 있습니다.