簡體   English   中英

禁用掛起腳本

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

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