[英]Disabling Hanging Script
在LINUX中啟動bash腳本時,該腳本成功且成功,但是終端掛起。 我必須始終輸入CTRL + C才能結束程序。 我可以在終端中輸入內容,然后按Enter鍵,但是腳本沒有響應。
我無法更改腳本文件,但可以啟動它以使其禁用等待用戶的操作嗎? 是否有任何故障排除技巧來禁用此行為?
您可以在最后使用&
來執行腳本,這會將控制權交還給外殼程序(將腳本作為后台進程執行)。
./script.sh &
如果要停止腳本,則需要獲取其進程ID,然后將其殺死。 要獲取進程ID,請執行ps aux | grep script
ps aux | grep script
其中script
是您的腳本名稱,或執行echo $!
在啟動腳本之后。 擁有進程ID時,可以使用kill 1234
該進程,其中1234
是進程ID。
如果可以估計腳本的執行時間,則可以在一定時間后自動將其殺死:
bash -c '(sleep 5m; kill $$ 2> /dev/null) & exec script' &
在此命令中, sleep 5m
是進程被殺死之后的時間, script
是腳本(或命令)的名稱。
例如,如果腳本的執行時間平均為30秒,則可以將超時設置為一分鍾或兩分鍾,以便在執行速度比平常慢的情況下為其提供一些額外的時間。 請注意,此命令不能保證腳本完成執行,因此請謹慎使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.