Questions tagged «sleep»

在给定时间长度内延迟程序执行的命令。对于低功耗模式,请改用* suspend *。

6
每秒精确运行一次循环
我正在运行此循环以每秒检查和打印一些内容。但是,由于计算可能要花费几百毫秒,因此打印时间有时会跳过一秒钟。 有什么办法可以写出这样一个循环,以确保我每秒都能得到一个打印输出?(当然,提供循环中的计算时间不到一秒钟:) while true; do TIME=$(date +%H:%M:%S) # some calculations which take a few hundred milliseconds FOO=... BAR=... printf '%s %s %s\n' $TIME $FOO $BAR sleep 1 done
33 bash  timestamps  sleep 


8
避免在没有Bash命令的情况下忙于等待bash
我知道我可以在条件变为现实的情况下通过执行以下操作: while true; do test_condition && break sleep 1 done 但是它在每次迭代(休眠)时都会创建1个子流程。我可以这样做来避免它们: while true; do test_condition && break done 但是它占用大量CPU(繁忙等待)。为了避免子流程和繁忙的等待,我想出了以下解决方案,但是我发现它很丑陋: my_tmp_dir=$(mktemp -d --tmpdir=/tmp) # Create a unique tmp dir for the fifo. mkfifo $my_tmp_dir/fifo # Create an empty fifo for sleep by read. exec 3<> $my_tmp_dir/fifo # Open the fifo for …

8
cronVS。睡眠-就有效的CPU /内存利用率而言,哪种更好?
案子: 我需要在特定的时间间隔运行一些命令/脚本,为此,我有两个选择: 成立了cron-job sleep在脚本本身中实现一个循环。 题: 从资源消耗的角度来看,哪个是更好的选择,为什么?是cron更好的方法吗?cron是否使用某种触发器或使其比其他触发器更有效的触发器?cron使用什么程序来检查和启动作业?

2
如何运行systemd用户服务以在睡眠(又称为挂起,休眠)时触发?
基于各种资料,我凑齐了~/.config/systemd/user/screenlock.service: [Unit] Description=Lock X session Before=sleep.target [Service] Environment=DISPLAY=:0 ExecStart=/usr/bin/xautolock -locknow [Install] WantedBy=sleep.target 我已经使用启用了它systemctl --user enable screenlock.service。但是在重新启动,登录,挂起和恢复运行(通过systemctl suspend并通过关闭盖子进行测试)之后,屏幕并未锁定,并且中没有任何内容journalctl --user-unit screenlock.service。我究竟做错了什么? 运行DISPLAY=:0 /usr/bin/xautolock -locknow将按预期锁定屏幕。 $ systemctl --version systemd 215 +PAM -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP -APPARMOR $ awesome --version awesome v3.5.5 (Kansas City Shuffle) • Build: Apr 11 …

6
从现在开始的某个时候做一些事情(也许还会在控制台中显示结果)
我使用Ubuntu服务器16.04,并且希望at在当前会话中使用该实用程序从现在开始1分钟(例如echo)进行操作,而没有给出具体的日期和时间-比当前时间提前1分钟。 这失败了: echo 'hi' | at 1m 我之所以选择at,sleep是因为睡眠妨碍了当前会话,因此更适合于延迟另一会话中的命令,而不是我们大多数时间都在使用的命令。航空(AFAIR),at这种举止不会妨碍我的会议。 更新_1 通过Pied Piper的回答,我已经尝试过: (sleep 1m; echo 'hi') & 我对此方法有疑问:“ hi”流打印在我的主要提示内,并且还在_包含它的主要提示下添加了一个空的辅助提示(),请参见: USER@:~# (sleep 1m; echo 'hi') & [1] 22731 USER@:~# hi ^C [1]+ Done 更新_2 通过彼得·科德的回答,我尝试过: (sleep 2 && echo -e '\nhi' && kill -WINCH $$ &) 看来,这在Bash 4.4中正常运行,但在某些旧版本中似乎无效(请参见答案中的注释)。我个人在自己的环境中使用Bash 4.3。
12 console  stdout  at  sleep  delay 

4
如何确定“睡眠”中剩余的时间?
我有: sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done 作为一个简单,省时的计时器运行,以提醒我何时应该执行某些操作。那sleep 210m是PID 25347。 我试图弄清楚睡眠还剩下多少时间。我想出的最好的方法是,我输入原始的睡眠时间(210分钟)是: $ echo "210 60 * $(ps -o etimes= 25347) - 60 ~ r n [:] P p" | dc 78:11 (说明:第一位计算原始睡眠的秒数;该$(ps…)位获取睡眠开始以来的时间(以秒为单位),然后其余部分减去它们,并以分钟和秒为单位显示。) 在我看来,这通常会很有用;有一个更好的方法吗?或者至少是一种聪明的方法来解析睡眠时间ps -o args?
11 shell  sleep 

3
睡到下次特定时间
我需要一系列命令或一个可以休眠的命令,直到下一次出现“ 4:00”之类的特定时间为止。 我该怎么办? 该at命令或cronjob是不可选项,因为我一定不要离开当前所在的脚本。 我正在谈论的特定情况是在屏幕上运行的脚本。我不要停止脚本本身来执行脚本,这一点非常重要,因为在脚本的某些地方需要存储许多重要的变量。脚本不总是应该定期执行。它只需要在特定时间执行。 如果脚本必须创建任何文件或任何其他任务(例如cronjobs或其他屏幕),那将是非常有益的。这只是设计问题。 我只是有一个可怕的主意: difference=$(($(date -d "4:00" +%s) - $(date +%s))) if [ $difference -lt 0 ] then sleep $((86400 + difference)) else sleep $difference fi 您有更好的主意吗? 如果需要,将添加更多信息!
11 bash  date  time  sleep 

3
每X秒执行一次命令
我希望每10秒执行一次命令,并使其在后台执行(因此消除了watch?)。所有答案均显示如下内容,但这将在11到14秒内执行。如何做到这一点? while true; do # perform command that takes between 1 and 4 seconds sleep 10 done

1
远程将显示器从睡眠中唤醒
我有一个运行的Ubuntu服务器xdm,openbox上面插入了一个监视器,该监视器显示通过cron守护程序启动的视频。 当显示器长时间不使用时,它进入睡眠模式,我无法通过视频处理将其唤醒:显示器保持黑色。 如何唤醒显示器?如果可能,不要安装软件包,也不能物理访问计算机。
10 openbox  sleep 

2
如何关闭系统电源,但仍在网络上保持可用状态
我正在考虑在网络上安装文件服务器,以提供数据和备份。 我希望这台机器始终可用,但我不想一直都保持开机状态(以节省电量)。 是否可以进行设置,以使它在一段时间后自动挂起(或关闭电源),然后在我尝试连接到它时自动重新打开电源(使用LAN魔术唤醒,而无需发送明确的WOL包)?

3
&&和;和有什么区别?什么时候分叉睡觉到背景?
我刚刚问了一个有关在后台中休眠的过程的问题。 我自己想到的符号如下所示: sleep 10 && echo "hello world" & 这个对不同问题的答案使用了不同的格式。 ( sleep 10 ; echo "hello world" ) & 我知道,&&如果第一个过程返回true ,则仅允许第二个过程开始。睡眠会失败吗?有没有一种情况我应该优先选择另一种情况?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.