我使用此代码启动闹钟:
IDLE_CPU=1
NCPU=$(nproc)
int_childs() {
trap - INT
while IFS=$'\n' read -r pid; do
kill -s SIGINT -$pid
done < <(jobs -p -r)
kill -s SIGINT -$$
}
# cmds is array that hold commands
# the complex thing is display which will handle all cmd output
# and serialized it correctly
trap int_childs INT
{
exec 2>&1
set -m
if [ $NCPU -gt $IDLE_CPU ]; then
for cmd in "${cmds[@]}"; do
$cmd &
while [ $(jobs -pr |wc -l) -ge $((NCPU - IDLE_CPU)) ]; do
wait -n
done
done
wait
else
for cmd in "${cmds[@]}"; do
$cmd
done
fi
} | display
如果我终止应用程序进程,警报就不再被触发了。为什么?不应该假设,如果你创建一个重复的警报,它将重复,直到无限?
我有哪些替代品可以继续重复工作,即使应用程序进程已被用户或系统杀死?我有一个小部件,即使应用程序被杀,我也必须更新。
由于