我有一个bash脚本,它在插入一个特殊设备后启动。在这个脚本中执行一个python脚本:
#! /bin/bash
echo "before python" >> /home/pi/log
/usr/bin/python3.2 pythonscript.py
echo "after python" >> /home/pi/log
python脚本需要大量的CPU,但只需要少量的RAM。我在htop中看到shell脚本和python脚本都在运行。一段时间后,shell脚本消失了! python脚本可以正常工作到最后。但由于shell脚本不再存在,第二个echo从不执行。谁在杀我的剧本?为什么? (如果python脚本不需要太长时间,它可以工作)
答案 0 :(得分:0)
好的我想我从这里得到了一个解决方案:https://unix.stackexchange.com/questions/28548/how-to-run-custom-scripts-upon-usb-device-plug-in/28711#28711
似乎udev正在杀死我的bash脚本,但不是python脚本。因此,我必须以某种方式分离这个过程。我这样解决了:
#!/bin/bash
echo "/home/pi/mipod/src/script_taking_long.sh $1" | at now
行为的原因似乎是来自udev的超时?如果有人能澄清这一点,那会有所帮助。