我在寫一個腳本,並在某些時候調用了「command1」,其中 不會停止,直到它調用CTRL + C爲止。Linux命令 - 有超時中止操作
- 有沒有辦法讓一個命令超時?像: command1 arguments -timeout 10
- 如何以文本形式編寫CTRL + C命令?
Thx!
我在寫一個腳本,並在某些時候調用了「command1」,其中 不會停止,直到它調用CTRL + C爲止。Linux命令 - 有超時中止操作
Thx!
您可以從GNU的coreutils使用timeout
命令(您可能需要先安裝它,但它有大多數,如果不是所有的Linux發行版):
timeout [OPTION] DURATION COMMAND [ARG]...
例如:
timeout 5 ./test.sh
將在執行5秒後終止腳本。如果您想發送KILL信號(而不是TERM),請使用-k
標誌。
Here你有timeout
命令的完整描述。
我只是想
jekyll -server & sleep 10;pkill jekyll
您的情況可以做的。
警告:您將使用此命令殺死任何和所有名爲「jekyll」的進程。更好的方法是保存你感興趣的PID(在命令啓動後它在'$!'中)並且殺死那個PID。 – Celada
在您的腳本中,您可以設置一個等待。 wait 10
將等待10秒鐘,至於退出程序沒有CTRL + C
看看exit
命令。如果你使用exit 0
這意味着好。有不同的版本,但我不知道他們的意思是什麼意思。
exit 1
exit 2..... so on and so forth
更新
@切拉達
無需抨擊。你可能只是說「也許你沒有正確理解這個問題」Stackoverflow在這裏幫助人們學習,而不是把它們撕下來。他們爲此發明了Reddit。至於退出代碼,您可以通過使用代碼發出exit()命令來強制退出程序。直接從linux.die.net。
Exit Code Number Meaning Example Comments
1 Catchall for general errors let "var1 = 1/0" Miscellaneous errors, such as "divide by zero"
2 Misuse of shell builtins (according to Bash documentation) Seldom seen, usually defaults to exit code 1
126 Command invoked cannot execute Permission problem or command is not an executable
127 "command not found" Possible problem with $PATH or a typo
128 Invalid argument to exit exit 3.14159 exit takes only integer args in the range 0 - 255 (see footnote)
128+n Fatal error signal "n" kill -9 $PPID of script $? returns 137 (128 + 9)
130 Script terminated by Control-C Control-C is fatal error signal 2, (130 = 128 + 2, see above)
255* Exit status out of range exit -1 exit takes only integer args in the range 0 - 255
這沒有任何意義。這根本不等於'wait'命令的作用,我不知道'exit'是如何表示使用的。 – Celada
通過發送文本形式的Ctrl + C,你的意思是什麼? – betabandido