【问题标题】:How to run Bash Script on startup and keep monitoring the results on the terminal如何在启动时运行 Bash 脚本并在终端上持续监控结果
【发布时间】:2022-06-21 02:50:03
【问题描述】:

由于一些问题我不会在这里详细说明以免浪费时间,我制作了一个 bash 脚本,它将每 10 分钟 ping 一次 google,如果有响应,它将保持循环运行,如果没有然后PC将重新启动。经过很多障碍,我已经能够制作脚本并使其在启动时启动。然而问题是我想在终端上看到结果,这意味着我想继续监控它,但终端在启动时没有打开。但如果我以./net.sh 运行它,它确实会打开。 该脚本在启动时运行,我知道这一点,因为我使用另一个脚本打开应用程序并且它运行完美。

我的系统信息

NAME="Linux Mint"
VERSION="18.3 (Sylvia)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 18.3"
VERSION_ID="18.3"
HOME_URL="http://www.linuxmint.com/"
SUPPORT_URL="http://forums.linuxmint.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/linuxmint/"
VERSION_CODENAME=sylvia
UBUNTU_CODENAME=xenial

我的 net.sh bash 脚本的内容是

#! /bin/bash

xfce4-terminal &

sleep 30

while true
do
        ping -c1 google.com
        if [ $? == 0 ]; then
                echo "Ping Sucessful. The Device will Continue Operating"
                sleep 600
        else
                systemctl reboot
        fi

done

我已将脚本放入/usr/bin,并将启动时启动脚本插入/etc/rc.local

【问题讨论】:

  • 这应该会有所帮助:superuser.com/a/1302626
  • 终端真的有必要吗?您可以考虑将输出记录到文本文件
  • 谢谢大家。回复有点晚了,但我找到了一个对我有用的修复程序。我是该网站的新手,所以我不知道如何标记某人。 @Diego Torres Milano 感谢您的评论,但我已经事先经历过,但我无法理解。我需要一个更具体的答案。
  • @Flo 谢谢。我只是喜欢终端的外观,这就是为什么。如果可以在终端中实时读取文本文件,那也可以,但我不知道该怎么做。

标签: bash terminal startup linux-mint


【解决方案1】:

所以我做了一些进一步的研究,在 reddit 的帮助下,我意识到我无法在终端上显示它的原因是脚本在启动时启动,但我需要在用户登录后启动它。所以我在启动应用程序上添加了脚本(如果它叫什么,可以在开始菜单上搜索)。但它仍然存在问题,所以我将脚本分为两部分。 我将net.sh 脚本放在启动时并指示该脚本打开我的主脚本,我将其命名为net_loop.sh

这就是 net.sh 脚本的外观

#! /bin/bash
    
sleep 20
xfce4-terminal -e usr/bin/net_loop.sh

还有 net_loop.sh

#! /bin/bash

while true
do
        ping -c1 google.com
        if [ $? == 0 ]; then
                echo "Ping Sucessful. The Device will Continue Operating"
                sleep 600
        else
                systemctl reboot
        fi

done

结果是 net_loop.sh 脚本在另一个终端中打开的结果。
注意:我使用了来自thread的帮助

【讨论】:

  • 您可以执行if ping -c1 google.com; then ... 并且对于丢失的数据包重新启动似乎有点激烈,如果您重新启动脚本可能会保持沉默(不是终端,没有输出),因为您会在 ping 失败时立即注意到输出没用
【解决方案2】:

如果分钟间隔可用为什么不使用“cron”来启动你的?

$> crontab –e

$> sudo crontab –e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多