【问题标题】:Startup script to run detachted screen, switch user, and run multiple bash commands用于运行分离屏幕、切换用户和运行多个 bash 命令的启动脚本
【发布时间】:2022-06-22 09:45:04
【问题描述】:

我想创建一个小型启动脚本,在屏幕上连续执行多项操作。

  1. 脚本启动一个命名的、分离的屏幕(screen -S discordbot -d -m 有效)
  2. 脚本中的用户已更改(screen -S discordbot -X "su discordbot"screen -S discordbot -X su discordbotscreen -S discordbot -d -m bash -c "su discordbot;" 似乎都不起作用,或者至少没有执行后续命令)。
  3. 已执行 cd 文件夹更改。
  4. Java jar 或其他脚本已启动。

当我运行多个机器人时,脚本需要能够以细微的变化连续多次执行此操作。关于如何做到这一点的任何指示?

【问题讨论】:

    标签: linux bash debian startup gnu-screen


    【解决方案1】:

    您启动的屏幕会话将在您启动的进程退出后立即退出。

    这行得通,例如:

    $ screen -S discordbot -d -m bash
    
    $ screen -ls
    There is a screen on:
        2948.discordbot (Detached)
    1 Socket in <...>
    

    这样:

    $ screen -S discordbot -d -m bin/discordbot.sh
    

    bin/discordbot.sh 看起来像这样:

    #!/bin/sh
    
    echo "Sleeping..."
    sleep 10
    /bin/echo -n "Hit enter to finish this script: "
    read
    

    最后两行防止屏幕过早退出。您想在该启动脚本中执行的其他各种操作也应该可以工作,假设您以root 执行此操作,这样su 将在没有提示的情况下工作。

    【讨论】:

      猜你喜欢
      • 2020-02-17
      • 2021-09-07
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      相关资源
      最近更新 更多