【问题标题】:How to check in If-Statement if a screen is already running如果屏幕已经在运行,如何检查 If-Statement
【发布时间】:2021-03-18 08:26:03
【问题描述】:

我想编写一个 bash 脚本来检查我的屏幕(我给这个屏幕命名为 a3_altis)是否已经在运行,就像这样:

if (screen a3_altis is running)
  then
    ./stop.sh
    sleep 5
    ./start.sh
  else
    ./start.sh
fi

我是 Bash 新手,所以我真的不知道如何检查屏幕是否正在运行。

【问题讨论】:

  • 你应该对“屏幕运行”更加精确。是 X 服务器吗?本地,远程?你是指变量 $DISPLAY 吗?
  • 这是我服务器上的本地屏幕。而且我没有引用 $DISPLAY 变量。
  • 正在寻找终端模拟器 screen 的实例,或者您完全在询问其他问题?
  • 我正在寻找终端模拟器screen的实例@
  • 在任何一种情况下,您都不应该期望命令[a3_altis 存在。 [ 之后需要空格来将其与第一个参数分开。 ls foo 列出了foo 中的名称。 lsfoo 不是命令。同样,[ a3_altis 将使用一个参数调用 [,但 [a3_altis 不太可能在您的 PATH 中。

标签: linux bash ubuntu ubuntu-18.04


【解决方案1】:

screen 可能会提供更强大的机制,但只需使用grep 就足够了:

if screen -ls | grep -q a3_altis; then
    ./stop.sh
    sleep 5
fi
./start.sh

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多