關注建設銀行網站如何讓網站被百度收錄
實現(xiàn)linux的軟件自啟動,需要四個文件
第一個【displayScreen.desktop】文件,.desktop文件就是一個用來運行程序的快捷方式,也叫啟動器,常用來自啟動用的文件,內容如下
[Desktop Entry]
#要執(zhí)行的腳本位置
Exec=/home/yicaobao/test/mySoftware/DisplayScreen_Daemon.sh
#圖標
Icon=/home/yicaobao/test/mySoftware/resource/logo/discreen-IV.png
Name=DisplayScreen
Name[zh_CN]=DisplayScreen
Terminal=false
Type=Application
X-Deepin-Vendor=user-custom
第二個文件【DisplayScreen_Daemon.sh】為檢測軟件是否啟動的守護腳本文件,如果軟件被殺死了,會被檢測到,自動重啟,可以自己改想要的效果,一下腳本代碼為10s校測一次改軟件進程,如果進程不存在就拉起軟件
需要指定下要運行的程序名APP_NAME,路徑APP_PATH
#! /bin/sh#獲取當前路徑
currentPath=$(cd `dirname $0`; pwd)#進程名字可修改
APP_NAME=DisplayScreen
APP_PATH=${currentPath}/bin/${APP_NAME}while true ; do#用ps獲取$PRO_NAME進程數(shù)量APP_NUM=`ps aux | grep -w ${APP_NAME} | grep -v grep |wc -l`#少于1,重啟進程if [ ${APP_NUM} -lt 1 ];thenecho "${APP_PATH} was killed"${APP_PATH} &#大于1,殺掉所有進程,重啟elif [ ${APP_NUM} -gt 1 ];thenecho "more than 1 ${APP_PATH},killall ${APP_PATH}"pkill -9 $APP_NAME${APP_PATH} &fi#kill僵尸進程
# ps aux | grep -w DisplayScreen | grep T | grep -v grep | wc -l
# ps -A -ostat,cmd | grep -e '^[zZ]' | grep -w DisplayScreen | grep -v grep | wc -lNUM_STAT=`ps -A -ostat,cmd | grep -e '^[zZ]' | grep -w ${APP_NAME} | grep -v grep | wc -l`if [ ${NUM_STAT} -gt 0 ];thenecho "pkill -9 ${APP_NAME}"pkill -9 ${APP_NAME}${APP_PATH} &fisleep 10sdoneexit 0#備注
# grep T 含義:T為輸出行前綴控制,確保實際行內容的第一個字符位于制表位上,以便選項卡看起來很正常,好像不加也沒影響
# grep -v grep 含義:很簡單 ,為了去除包含grep的進程行 ,避免影響最終數(shù)據(jù)的正確性
第三個文件【install.sh】為安裝啟動器的腳本,執(zhí)行腳本后,會將啟動器拷貝到啟動目錄下,開機會自動執(zhí)行這個啟動器
#!/bin/sh#設置開機自動啟動
echo "開始設置開機啟動"
sudo cp ./DisplayScreen.desktop /etc/xdg/autostartecho "安裝完畢,重啟后生效"
第四個文件【uninstall.sh】為卸載啟動器的腳本,執(zhí)行后,開機后軟件就不會自啟動了
#!/bin/sh#結束所有程序
sudo killall DataAcq
#移除開機自動啟動
echo "移除開機自動啟動"
sudo rm /etc/xdg/autostart/DisplayScreen.desktopecho "DisplayScreen卸載完畢"
我的要自啟動的程序在bin目錄下
執(zhí)行下,守護腳本,軟件就起來了
原理就是,建立一個啟動器,把啟動器放到開機啟動區(qū)域,開機后,會把這個區(qū)域的啟動器都執(zhí)行一遍,所以我們只需要把啟動器【DisplayScreen.desktop】的內容設為執(zhí)行這個守護腳本【DisplayScreen_Daemon.sh】就行了
大功告成!