[英]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.