VPS指令之《保持节点自动运行》

在VPS中让某个节点保持在线的常见方法包括以下几种:

1. 使用 screentmux 会话:

  • screentmux 是两个常用的终端多路复用器工具,可以在你断开 SSH 连接后保持进程运行。

使用 screen

  1. 安装 screen

    sudo apt-get install screen
    
  2. 创建一个新的 screen 会话:

    screen -S mynode
    
  3. 在这个会话中启动节点程序,比如:

    ./start-node.sh
    
  4. 按下 Ctrl + A 然后 D 键退出 screen 会话,但保持进程在后台运行。

  5. 重新连接到这个会话:

    screen -r mynode
    

使用 tmux

  1. 安装 tmux

    sudo apt-get install tmux
    
  2. 创建一个新的 tmux 会话:

    tmux new -s mynode
    
  3. 启动你的节点程序。

  4. 使用 Ctrl + B 然后 D 键退出会话并保持程序运行。

  5. 重新连接到这个会话:

    tmux attach -t mynode
    

2. 使用 nohup 命令:

  • nohup 命令可以使程序在后台运行,即使你退出了 SSH 会话。
nohup ./start-node.sh &

这会将标准输出和错误输出重定向到 nohup.out 文件,并在后台运行程序。

3. 使用 systemd 服务:

  • 如果你想让节点程序随着系统启动自动运行并在后台保持运行,可以将其配置为一个 systemd 服务。
  1. 创建一个新的 systemd 服务文件,比如 mynode.service

    sudo nano /etc/systemd/system/mynode.service
    
  2. 在文件中添加如下内容:

    [Unit]
    Description=My Node Service
    After=network.target
    
    [Service]
    ExecStart=/path/to/start-node.sh
    Restart=always
    User=root
    Group=root
    
    [Install]
    WantedBy=multi-user.target
    
  3. 保存并退出编辑器,然后重新加载 systemd 服务配置:

    sudo systemctl daemon-reload
    
  4. 启动并启用服务,使其开机自启动:

    sudo systemctl start mynode
    sudo systemctl enable mynode
    
  5. 查看服务状态:

    sudo systemctl status mynode
    

这些方法可以确保你的节点在 VPS 上保持在线,即使你断开了 SSH 连接或 VPS 重启。

一、检查是否已安装screen:

你可以通过以下命令来检查你的 VPS 上是否已经安装了 screen

screen --version

如果 screen 已经安装,这个命令会输出 screen 的版本信息,例如:

Screen version 4.08.00 (GNU) 05-Feb-20

如果 screen 未安装,你会看到类似如下的提示信息:

-bash: screen: command not found

如果 screen 未安装,你可以使用以下命令来安装它:

sudo apt-get update
sudo apt-get install screen

二、太好了,既然你已经安装了 screen我们就可以继续设置 dawn 节点保持在线。以下是具体步骤:

第一步:创建一个新的 screen 会话

首先,我们创建一个新的 screen 会话,你可以将其命名为 dawn_node(或者你喜欢的名字)。

screen -S dawn_node

第二步:启动 dawn 节点

在这个 screen 会话中,启动你的 dawn 节点。假设你有一个启动 dawn 节点的脚本,比如 start-dawn.sh,你可以这样运行:

./start-dawn.sh

或者,如果你的 dawn 节点是通过其他命令启动的,只需在 screen 会话中运行那个命令。

第三步:让 screen 会话在后台运行

dawn 节点启动并运行后,你可以将 screen 会话移到后台,以便在断开 SSH 连接时节点仍然保持在线。按下以下组合键:

  1. Ctrl + A(按住 Ctrl 键,然后按 A 键)

  2. D(直接按 D 键)

这会使你退出 screen 会话的当前窗口,但 dawn 节点会继续在后台运行。

第四步:重新连接到 screen 会话

如果你想查看 dawn 节点的运行状态,重新连接到之前的 screen 会话:

screen -r dawn_node

第五步:查看所有 screen 会话

如果你有多个 screen 会话运行,或者忘记了会话的名称,可以使用以下命令查看所有运行中的 screen 会话:

screen -ls

第六步:退出并终止 screen 会话

如果你想完全终止 dawn 节点和 screen 会话,可以在 screen 会话中输入 exit 命令,或者使用 Ctrl + D 键:

exit

这样会话将会关闭,节点也会停止运行。

完成这些步骤后,dawn 节点将继续在后台运行,即使你断开 SSH 连接,它也会保持在线。

三、出现 No such file or directory 错误的原因可能有几种。以下是一些可能的解决方法:

1. 检查脚本的路径

  • 确保你当前所在的目录是包含 start-dawn.sh 脚本的目录。你可以使用 ls 命令列出当前目录的文件,查看 start-dawn.sh 是否存在:

    ls
    
  • 如果脚本位于另一个目录中,你需要先导航到该目录。例如,如果脚本在 /root/dawn/ 目录中,你需要使用以下命令:

    cd /root/dawn/
    
  • 然后再运行脚本:

    ./start-dawn.sh
    

2. 检查脚本的名称

  • 确保脚本的名称正确无误。可以使用 ls 命令查看文件名是否拼写正确。可能文件名中有大小写错误或额外的字符。

3. 检查执行权限

  • 如果脚本存在但无法运行,可能是因为它没有执行权限。你可以通过以下命令赋予脚本执行权限:

    chmod +x start-dawn.sh
    
  • 然后再尝试运行脚本:

    ./start-dawn.sh
    

4. 定位脚本的位置

  • 如果你不确定脚本的位置,可以使用 find 命令来查找它:

    find / -name start-dawn.sh
    

这个命令将搜索整个文件系统,找到名为 start-dawn.sh 的脚本。

如果这些步骤不能解决问题,请告诉我你发现了什么情况,我会进一步帮助你。

从你列出的文件和目录来看,似乎并没有名为 start-dawn.sh 的脚本文件。不过,有一个名为 Dawn.sh 的脚本,可能是你需要的脚本。

运行 Dawn.sh 脚本

  1. 确认脚本名称如果 Dawn.sh 是你要启动 dawn 节点的脚本,可以尝试运行它。首先,确保它具有执行权限:

    chmod +x Dawn.sh
    
  2. 启动节点然后,使用 screen 启动这个脚本:

    screen -S dawn_node
    ./Dawn.sh
    
  3. 后台运行节点Ctrl + A,然后按 D 键,将 screen 会话移到后台,让节点保持运行。

如果 Dawn.sh 不是你要运行的脚本,或你找不到正确的启动脚本,请告诉我,我会进一步帮助你。

你已经成功创建并暂时退出了一个名为 dawn_nodescreen 会话。

接下来,你可以按照以下步骤操作:

  1. 重新连接到 screen 会话:

    • 如果你想重新进入这个 screen 会话,查看或启动 Dawn.sh 脚本,使用以下命令:

      screen -r dawn_node
      
  2. 启动 Dawn.sh 脚本:

    • 进入 screen 会话后,运行以下命令来启动 Dawn.sh 脚本:

      ./Dawn.sh
      
  3. screen 会话移到后台:

    • 一旦 Dawn.sh 脚本开始运行,并且你确认它正常启动后,可以按下以下组合键将 screen 会话移到后台运行:

      • Ctrl + A(按住 Ctrl 键,然后按 A 键)

      • D(直接按 D 键)

    这会使 dawn_node 会话在后台继续运行,你可以安全地断开 SSH 连接,而不影响节点的运行。

  4. 再次查看会话状态:

    • 如果你想查看当前的 screen 会话,可以使用以下命令:

      screen -ls
      
    • 你将看到类似如下的输出,显示所有正在运行的 screen 会话:

      There is a screen on:
          474942.dawn_node   (08/25/2024 07:32:11 AM)   (Detached)
      1 Socket in /var/run/screen/S-root.
      

这样,你的 dawn 节点将保持自动在线,即使你断开了 SSH 连接,它也会继续运行。

Subscribe to LittleMatch
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.