我正在寻找一种 ubuntu 内置的方法,让您可以在固定的时间内运行脚本、程序或其他任何内容。
我找到了一个可以按照我喜欢的方式执行此操作的程序,但该软件包不适用于 Ubuntu。无论如何,我都希望有内置的东西。
我唯一能想到的就是获取当前时间,然后设置一个从“现在”开始 30 分钟的 cron 作业,这将终止该程序。我希望有一种方法可以在不设置脚本的情况下做到这一点,但如果我需要 - 这不会是世界末日。30 分钟间隔后,我想让我的笔记本电脑进入睡眠模式,但这可以与计时器分开。
提前致谢。
答案1
为什么不使用/usr/bin/timeout
?
$ timeout --help
Usage: timeout [OPTION] DURATION COMMAND [ARG]...
or: timeout [OPTION]
Start COMMAND, and kill it if still running after DURATION.
答案2
我刚刚写了下面的内容并且它似乎有效:
ping google.com& PID=$!; sleep 3; kill $PID
当然,你应该用你想要运行的命令替换 ping,用秒数替换 3。如果你需要更详细的解释,请告诉我。
答案3
一个简单(并且没有经过太多测试)的版本hatimerun
:
#!/bin/sh
help(){
echo "Usage" >&2
echo " $0 -t TIME COMMAND" >&2
exit 1
}
TEMP=`getopt -o t: -n "$0" -- "$@"`
if [ $? != 0 ] ; then
help
fi
eval set -- "$TEMP"
while true ; do
case "$1" in
-t) timeout=$2; shift 2;;
--) shift; break;;
esac
done
if [ -z "$timeout" ]; then
help
fi
cmd="$*"
$cmd&
echo "kill $!" | at now+$timeout
查看at 的手册页如何指定时间。例如,at
最小时间分辨率为 1 分钟。
另一种方法是使用新贵而不是这个脚本。
答案4
使用 Perl:
perl -e "alarm 5; exec @ARGV" systemctl list-timers
使用 timelimit 命令:
sudo apt install timelimit
timelimit -t5 node app.js
使用超时命令:
timeout -sHUP time command