簡體   English   中英

如何在啟動時運行 Bash 腳本並在終端上持續監控結果

[英]How to run Bash Script on startup and keep monitoring the results on the terminal

由於一些問題,為了不浪費時間,我不會在這里詳細說明,我制作了一個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中插入了啟動時的腳本

所以我做了一些進一步的研究,在 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腳本在另一個終端打開的結果。
注意:我使用了這個線程的幫助

如果分鍾間隔可用,為什么不使用“cron”來啟動你的?

$> 定時任務 –e

或者

$> sudo crontab –e

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM