ubuntu server 开机自动登录并启动jupyter lab

如果你的 Ubuntu Server 系统没有安装桌面环境,就没有 lightdm 管理器可用了,开机自动登录需要用到 tty。

按如下步骤操作:

  1. 打开终端,使用以下命令以 root 用户身份编辑 /etc/systemd/system/[email protected]/autologin.conf 文件,这个文件一般不存在,需要创建它:
sudo nano /etc/systemd/system/[email protected]/autologin.conf

我的服务器中不存在文件夹[email protected],因此我是直接修改/etc/systemd/system/getty.target.wants/[email protected]
2. 输入以下内容:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin cw --noclear %I $TERM

这会让 tty1 终端,自动作为 cw 用户登录。按 Ctrl+X,输入 Y 并按回车退出。

打开对应文件之后,可能可以看到ExecStart=-/sbin/agetty -o '-p -- \u' --noclear %I $TERM,把这一行注释掉,再换成上面写的ExecStart=-/sbin/agetty --autologin cw --noclear %I $TERM。这个命令也是用于在 tty 终端中登录用户的 agetty 程序。下面是每个部分的解释:

  • ExecStart=:配置 systemd 来启动 tty1 终端。
  • -/sbin/agetty:这是启动 agetty 程序的命令,- 符号表示忽略任何错误,不管 agetty 是否成功启动。
  • --autologin cw:这是 agetty 的选项,用于设置自动登录的用户名,用户名为 cw
  • --noclear:这是 agetty 的选项,用于在用户注销后,保留登录的状态(终端上的内容不会被清除)。
  • %I:这是 agetty 的参数,表示启用动态的终端设备编号(%I 对应的是终端设备编号)。
  • $TERM:这也是 agetty 的参数,表示终端类型。

综上,ExecStart=-/sbin/agetty --autologin cw --noclear %I $TERM 表示在 tty1 终端上,启动 agetty 程序,并自动登录用户名为 cw,并且保留登录的状态(不清除屏幕上的内容)。

下面的部分都是设置jupyter lab自启动,但不太好用,每调用一次bash都会启动一个,很麻烦,所以还是推荐参照云服务器安装Anaconda3以及Jupyter-lab的安装与配置和开机启动

  1. 接下来创建启动命令的脚本,使用以下命令创建一个名为 startup.sh 的文件:

    sudo nano /home/cw/startup.sh
    
  2. 输入以下内容:

    #!/bin/bash
    sleep 10
    /usr/bin/nohup jupyter lab >/dev/null 2>&1 &
    

    sleep 10 命令是为了等待系统启动完成,防止启动脚本失败。>/dev/null 2>&1 命令是把 jupyter lab 的输出重定向到 /dev/null 中,这样就不会在终端中产生输出。按 Ctrl+X,输入 Y 并按回车退出。

    确保你已经在 cw 用户下,然后改变脚本的权限,使得能够运行:

    chmod +x /home/cw/startup.sh
    
  3. 接下来,需要将脚本添加到 cw 用户的 bashrc 配置文件中,使得每次打开终端,都会自动启动 jupyter lab

    nano /home/cw/.bashrc
    
  4. 在文件末尾添加如下内容:

    # Start jupyter lab on tty1
    if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
        /bin/bash /home/cw/startup.sh
    fi
    

    只有当不是在桌面环境下,而且当前终端是 tty1 终端时,才会执行 startup.sh 脚本启动 jupyter lab

    Ctrl+X,输入 Y 并按回车退出。

  5. 重启系统,等待系统启动,cw 用户会自动登录到 tty1 终端,并启动 jupyter lab

完成以上步骤后,每当你使用 cw 用户登录到 tty1 终端时,jupyter lab 将自动启动。

你可能感兴趣的:(python随笔,ubuntu,ubuntu,jupyter,linux)