Bash脚本被系统终止
我有一个bash脚本,它会在插入一个特殊设备后启动。在这个脚本中,会执行一个python脚本:
#! /bin/bash
echo "before python" >> /home/pi/log
/usr/bin/python3.2 pythonscript.py
echo "after python" >> /home/pi/log
这个python脚本需要很多CPU资源,但只需要少量的内存。我在htop里看到,shell脚本和python脚本都在运行。过了一段时间,shell脚本就消失了!而python脚本一直正常运行到结束。但是因为shell脚本不在了,第二个echo就永远不会被执行。是谁在杀掉我的脚本,为什么会这样?(如果python脚本运行时间不长,这个问题就不会出现)
1 个回答
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的超时?如果有人能解释一下,这会很有帮助。