脚本执行时间[编辑]

时间:2016-11-23 15:32:25

标签: python linux bash

我读了一个串口并将数据发送到python,我希望这个链工作10秒钟。以下代码不起作用:

sudo cat -v /dev/pts/2 | python3 bash_test.py 
pid=$!
sleep 10
kill -9 $pid

[UPDATE] 例如bash_test.py

import sys
for line in sys.stdin:
    print(line,'\n')

3 个答案:

答案 0 :(得分:1)

您可以使用timeout

sudo bash -c "cat -v /dev/pts/2 | timeout 10 python3 bash_test.py"

命令信息:

NAME
       timeout - run a command with a time limit

SYNOPSIS
       timeout [OPTION] DURATION COMMAND [ARG]...
       timeout [OPTION]

timeout的简单示例:

timeout 3 sleep 10

此处的命令为sleep 10,但timeout将在3秒后终止。

答案 1 :(得分:0)

尝试添加&在你的sudo之后签名

sudo cat -v /dev/pts/2 | python3 bash_test.py &
pid=$!
sleep 10
kill -9 $pid

答案 2 :(得分:0)

以下代码打开" sub-bash"实际命令运行的环境。这样它就可以在后台运行。如果您在python脚本中使用线程或多处理可能会有一些问题。

(sudo cat -v /dev/pts/2 | python3 bash_test.py) &
pid=$!
sleep 10
kill -9 $pid