摘要:使用命令后,作業(yè)被提交到后臺運行,當前控制臺沒有被占用,但是一但把當前控制臺關掉退出帳戶時,作業(yè)就會停止運行。
通常情況下我們需要對服務器的某一個服務進行監(jiān)控, 以確定該服務是在正常運行, 一般使用linux的計劃任務可以實現(xiàn), 但是計劃任務的最小執(zhí)行時間間隔是秒,往往并不能滿足我們的要求, 這時候Swoole的毫秒定時器就該出場了
監(jiān)控代碼
/dev/null | grep ". self::PORT . " | grep LISTEN | wc -l"; $result = shell_exec($shell); if($result != 1) { // 發(fā)送報警服務 郵件 短信 /// todo echo date("Ymd H:i:s")."error".PHP_EOL; } else { echo date("Ymd H:i:s")."succss".PHP_EOL; } } } // nohup swoole_timer_tick(2000, function($timer_id) { (new Server())->port(); echo "time-start".PHP_EOL; });
運行
注意以下命令要求使用絕對路徑
nohup /usr/bin/php /home/vagrant/code/swoole/script/bin/jian.php > /home/vagrant/code/swoole/script/bin/log.txt &
補充說明
&
當在前臺運行某個作業(yè)時,終端被該作業(yè)占據(jù);可以在命令后面加上& 實現(xiàn)后臺運行。例如:
sh test.sh &
適合在后臺運行的命令有find、費時的排序及一些shell腳本。在后臺運行作業(yè)時要當心:需要用戶交互的命令不要放在后臺執(zhí)行,因為這樣你的機器就會在那里傻等。不過,作業(yè)在后臺運行一樣會將結(jié)果輸出到屏幕上,干擾你的工作。如果放在后臺運行的作業(yè)會產(chǎn)生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:
command > out.file 2>&1 &
這樣,所有的標準輸出和錯誤輸出都將被重定向到一個叫做out.file的文件中。
nohup
使用&命令后,作業(yè)被提交到后臺運行,當前控制臺沒有被占用,但是一但把當前控制臺關掉(退出帳戶時),作業(yè)就會停止運行。nohup命令可以在你退出帳戶之后繼續(xù)運行相應的進程。nohup就是不掛起的意思(no hang up)。該命令的一般形式為:
nohup command &
如果使用nohup命令提交作業(yè),那么在缺省情況下該作業(yè)的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件:
nohup command > myout.file 2>&1 &
使用了nohup之后,很多人就這樣不管了,其實這樣有可能在當前賬戶非正常退出或者結(jié)束的時候,命令還是自己結(jié)束了。所以在使用nohup命令后臺運行命令之后,需要使用exit正常退出當前賬戶,這樣才能保證命令一直在后臺運行。
2>&1解析
command >out.file 2>&1 &
command>out.file是將command的輸出重定向到out.file文件,即輸出內(nèi)容不打印到屏幕上,而是輸出到out.file文件中。
2>&1 是將標準出錯重定向到標準輸出,這里的標準輸出已經(jīng)重定向到了out.file文件,即將標準出錯也輸出到out.file文件中。最后一個&, 是讓該命令在后臺執(zhí)行。
試想2>1代表什么,2與>結(jié)合代表錯誤重定向,而1則代表錯誤重定向到一個文件1,而不代表標準輸出;換成2>&1,&與1結(jié)合就代表標準輸出了,就變成錯誤重定向到標準輸出.
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/29794.html
摘要:是一個基于擴展實現(xiàn)的輕量級高性能的常駐內(nèi)存型的和應用服務框架高度封裝了,,服務器,以及基于實現(xiàn)可擴展的服務,同時支持包方式安裝部署項目。基于實用,抽象事件處理類,實現(xiàn)與底層的回調(diào)的解耦,支持同步異步調(diào)用,內(nèi)置等常用組件等。 swoolefy swoolefy是一個基于swoole擴展實現(xiàn)的輕量級高性能的常駐內(nèi)存型的API和Web應用服務框架,高度封裝了http,websocket,ud...
摘要:出題思路本次題目來自于我的一個外包項目實踐。回合制比賽以分鐘為一回合。選手在比賽過程中需要盜取到對手的密鑰,以竊聽他方內(nèi)容,并修改己方密鑰以放泄露動態(tài)該部分同樣由中心服務器與完成。 Author: RytiaDate: 20190427Blog: www.zzfly.net本人才學疏淺,望君不吝賜教 背景 受學校老師邀請,為學弟學妹舉辦分享會介紹 AWD 相關經(jīng)驗,本人一時頭腦風暴采用...
閱讀 3044·2021-11-22 09:34
閱讀 3636·2021-08-31 09:45
閱讀 3836·2019-08-30 13:57
閱讀 1670·2019-08-29 15:11
閱讀 1681·2019-08-28 18:04
閱讀 3218·2019-08-28 17:59
閱讀 1558·2019-08-26 13:35
閱讀 2188·2019-08-26 10:12