为什么网页版Rstudio登陆总是失败
通常我们拿到一个全新服务器,要给大家使用,需要配置最新版R环境,代码如下:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository 'deb https://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu bionic-cran40/'
sudo apt update
sudo apt install r-base
前面的代码取决于ubuntu的版本哦,ubuntu bionic 大家需要自己去学习。然后安装一些R相关网页服务(shiny和Rstudio):
https://rstudio.com/products/rstudio/download-server/debian-ubuntu/ https://rstudio.com/products/shiny/download-server/ubuntu/
代码如下:
sudo apt install gdebi-core
# Install for Debian 10 / Ubuntu 18 / Ubuntu 20
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.4.1103-amd64.deb
sudo gdebi rstudio-server-1.4.1103-amd64.deb
sudo su - \
-c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""
# Download Shiny Server for Ubuntu 16.04 or later
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.16.958-amd64.deb
sudo gdebi shiny-server-1.5.16.958-amd64.deb
这个时候,大家就可以提供服务器的IP地址来使用网页版的Rstudio登陆啦,但是有一个小伙伴不知道自己弄了什么操作导致自己的网页版Rstudio登陆总是失败。我让实习生给他进行了答疑,并且记录分享给大家:
Rserve的登陆
在浏览器的地址栏输入IP:Port后,会弹出个页面,在页面中输入账号和密码即可登陆。
常见报错解决办法
2.1 在登陆网页Rserve的时候会在服务器的家目录中产生一个.rstudo的隐藏目录,该目录中储存了相关的信息,遇到以上报错导致无法登陆需要登陆服务器去到家目录中删除.rstudio中的session目录。
2.2 当删除session目录仍无法登陆时,需要将rsession进程全部kill掉之后才可登陆Rstudio。
ps -ef |grep user|grep rsession|awk '{print $2}'|xargs kill -9
如下所示:
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 11 1月22 ? 1-10:15:10 /sbin/init splash
root 2 0 0 1月22 ? 00:00:04 [kthreadd]
root 3 2 0 1月22 ? 00:00:00 [rcu_gp]
root 4 2 0 1月22 ? 00:00:00 [rcu_par_gp]
root 6 2 0 1月22 ? 00:00:00 [kworker/0:0H-events_highpri]
root 10 2 0 1月22 ? 00:00:00 [mm_percpu_wq]
root 11 2 0 1月22 ? 00:01:37 [ksoftirqd/0]
root 12 2 0 1月22 ? 00:37:28 [rcu_sched]
################################
这个命令可以查看系统上运行的所有进程。
UID:启动这些进程的用户。
PID:进程的进程ID。
PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
C:进程生命周期中的CPU利用率。
STIME:进程启动的系统时间。
TTY:进程启动的终端设备。
TIME:运行进程需要的累计CPU时间。
CMD:启动的程序名称grep user|grep rsession|awk '{print $2}'|xargs kill -9
############################
两个grep命令查找对应用户启动的rsession进程,
在通过awk命令输出PID号,
xargs是为了将awk命令输出PID号一个一个传递给kill命令,最终终止rsession进程。
这些shell命令一定要自己熟练起来哦!