Joh*_*ood 6 bash timeout scala
设置: Ubuntu 12.04,32位; Scala 2.9.1; Java 1.6.0_24
描述:
在bash命令行上,命令/usr/bin/timeout 10 scala -version
工作正常,在bash脚本中执行时会卡住.
在命令行执行(持续时间< 1
秒):
user@ubuntu:~$ /usr/bin/timeout 10 scala -version
Scala code runner version 2.9.1 -- Copyright 2002-2011, LAMP/EPFL
user@ubuntu:~$ echo $?
1
Run Code Online (Sandbox Code Playgroud)
放入bash脚本的命令卡住了:
testScript.sh
:
#!/bin/bash
/usr/bin/timeout 10 scala -version
echo "finished with $?"
Run Code Online (Sandbox Code Playgroud)
执行testScript.sh
(持续时间10秒):
user@ubuntu:~/scripts$ ./testScript.sh
Scala code runner version 2.9.1 -- Copyright 2002-2011, LAMP/EPFL
finished with 124
user@ubuntu:~/scripts$
Run Code Online (Sandbox Code Playgroud)
注意:问题不会出现在Java(Scala使用)中,它似乎是Scala特定的问题.
问题:为什么timeout
脚本中的调用卡住了?
我该如何解决这个/什么是一个好的解决方法?
尝试包括该--foreground
选项.来自man timeout
:
- 前景
如果没有直接从shell提示符运行超时,请允许COMMAND从TTY读取并接收TTY信号.在这种模式下,COMMAND的孩子不会超时.
使用以下测试脚本:
#!/bin/bash
/usr/bin/timeout --foreground 10 scala -version
echo "finished with $?"
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常.
$ ./test.sh
Scala code runner version 2.9.1 -- Copyright 2002-2011, LAMP/EPFL
finished with 1
Run Code Online (Sandbox Code Playgroud)
如上所述,没有--foreground
脚本挂起.
归档时间: |
|
查看次数: |
468 次 |
最近记录: |