- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我编写了一个在启动时运行的 bash 脚本,并为周一至周五设置闹钟。周六和周日不需要,所以我修改了脚本以节省那些日子的精力。脚本有效,有点。但是,它总是与第一个“if”语句一起使用。电脑每天在指定时间醒来,只在开机时不执行'== Friday'和'== Saturday'选项。如果我手动运行脚本,则会正确筛选“== Friday”和“== Saturday”选项。
关于为什么会发生这种情况的任何想法。我担心脚本的可靠性。
#!/bin/bash
# see if waiting for the system to start helps get the correct time
sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sleep 10
nvidia-settings -a [gpu:0]/GPUFanControlState=1
nvidia-settings -a [fan:0]/GPUCurrentFanSpeed=15
day=$(date +%A)
#printf "%s\n" "$day"
#DT=$(date --date='06:19 tomorrow')
if [[ "$day" == "Sunday" || "$day" == "Monday" || "$day" == "Tuesday" || "$day" == "Wednesday" || "$day" == "Thursday" ]];
then
DTs=$(date --date='06:19:00 tomorrow +22 seconds' +%s)
fi
if [[ "$day" == "Friday" || "$day" == "Saturday" ]];
then
DTs=$(date --date='06:19:00 next Monday' +%s)
fi
# The RTCWake needs to be set to 0 so that an IO error is not created
sudo sh -c "echo $DTs > /sys/class/rtc/rtc0/wakealarm"
WAKERTC=$(cat /sys/class/rtc/rtc0/wakealarm)
WAKERTC=$(date -d @$WAKERTC)
notify-send "will wake $WAKERTC"
notify-send "NVIDIA Fan set to 15"
仅供引用,额外的 22 秒允许我调试脚本。此外,'echo 0' 语句被移到脚本的早期,因为我认为启动中的一些延迟可能有助于时钟(它没有)。
编辑已添加 --- 感谢您就 if-then 代码的最佳实践提出建议。他们是我应该看到自己的好渔获物。虽然,脚本仍然行为不端。要么根本不执行 if 语句,生成一个通知语句,读取“will wake”,意味着没有设置警报,要么不识别周五/周六查询,第二天它仍然醒来。重要说明:您可能会注意到该脚本与 Nvidia GPU 风扇 Controller 交织在一起。这每次都执行。此外,如果从终端运行该脚本是完美的,但如果从启动应用程序运行则只能在大约 80% 的时间内运行。
最佳答案
试试这个:
if [[ "$day" == "Sunday" || "$day" == "Monday" || "$day" == "Tuesday" || "$day" == "Wednesday" || "$day" == "Thursday" ]]; then
DTs=$(date --date='06:19:00 tomorrow +22 seconds' +%s)
else
DTs=$(date --date='06:19:00 next Monday' +%s)
fi
当您可以使用 else
时,第二个 if
似乎是多余的
关于linux - 设置唤醒警报的 bash 脚本设置了错误的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168594/
我正在阅读雷姆齐教授的OSTEP书 http://pages.cs.wisc.edu/~remzi/OSTEP/ 我只能部分理解以下代码如何导致唤醒/等待竞态条件。(该代码摘自书籍一章。 http:/
我目前正在构建一个应用程序,如果我的 android 手机处于锁定状态,我想在收到任何通知时避免屏幕亮起。 我正在尝试找到解决方案,但我找不到任何方法。 我在 switch.setOnCheckedC
有没有办法以编程方式进入 BIOS 并为支持 LAN 唤醒功能的机器打开该功能? 理想情况下,解决方案应该是跨 BIOS,但使用单独的解决方案来打击每个主要供应商也是可以的。 最佳答案 BIOS 配置
我有大量的 Azure 数据库,目前有 6 个,但随着时间的推移,这个数量将会增加。 数据库的访问频率很低,因此为了节省成本,它们被设置为 1 小时后自动休眠。 我需要在 Access 中连接到一个或
我有一个已纳入消费计划的现有 Azure Function 我正在编写另一个函数来调用它 现有函数运行后,它会处理存储帐户中的文件。 为了处理我的存储帐户中的文件,我们必须手动进入门户并通过导航“唤醒
我有一个已纳入消费计划的现有 Azure Function 我正在编写另一个函数来调用它 现有函数运行后,它会处理存储帐户中的文件。 为了处理我的存储帐户中的文件,我们必须手动进入门户并通过导航“唤醒
我想使用方法 wakeUp电源管理器。Eclipse (ADT) 不调整此方法。但是对面的“goToSleep”就没有问题了: PowerManager pm = (PowerManager) MyA
我有以下线程池。 #include #include #include #include #include #include #include // remove me (only fo
我写了一个Java程序,它分析其他程序。执行可能需要很长时间(=几天)。现在(三天后),我遇到了问题,我的程序/进程正在 sleep (S)。它仍然分配了 50% 的内存,有时会打印新的输出,但 to
我有一个很简单的问题。 我们使用 BackgroundAgents( Periodic agents ) 来执行一些后台任务,这些任务需要 WiFi(Internet) 连接才能执行 HttpWebR
我读了一些其他帖子,但没有找到我正在寻找的确切答案,所以我希望有人能给出一些澄清。 我有一个程序会运行一段时间。我有一些在后台运行的线程来执行各种任务,为了简单起见,让我们想想 3 个线程。 Thre
我的后台服务正在尽快将消息发送到本地服务器。每条消息通常需要大约 30 毫秒。但是,当手机处于 sleep 模式时,大约需要 400 毫秒到 1000 毫秒(使用“正确”的 Wifi 策略关闭屏幕)
嘿,我需要在某个时间唤醒我正在 sleep 的 Android 设备。有什么建议吗? 附:唤醒:打开显示屏并可能解锁手机 最佳答案 唤醒屏幕: PowerManager pm = (PowerMana
我们有一个用 C# 编写的 Windows 服务。该服务会生成一个执行此操作的线程: private void ThreadWorkerFunction() { while(false == _s
在scala中,我如何告诉线程: sleep t秒钟,或直到收到消息?也就是说,最多只能睡t秒钟,但是如果t尚未结束,您会醒来,并且您会收到一条特定的消息。 最佳答案 或者,您可以使用条件变量。 va
我发现我们可以在 Awake() 或 Start() 中初始化变量,并且 Awake() 将在 之前调用开始()。 我们应该什么时候在Awake和Start中进行初始化才能获得最佳性能? 最佳答案 通
在 Windows Azure 辅助角色中处理“紧急”消息的最佳方式是什么? 我有一个启动的辅助角色,执行无限 while(true) 循环,并在此循环中: 读取队列中是否有消息 处理它们并删除它们
你好,我已经调试了我的代码一整天,但我就是看不出哪里可能出错。 我在主线程上使用 SerialPortEventListener,在工作线程中我有一个与服务器通信的客户端套接字。由于此工作线程到达re
我想知道线程何时从某个条件中唤醒我在消费者线程上有这样的东西 while(true) { std::unique_lock gu
我希望这个问题适合 SE,但如果不适合,请告诉我可以将其移动到哪里,我会很乐意这样做。我目前正在构建一个 iOS 应用程序,需要在发出“匹配预订请求”时唤醒设备/中断当前应用程序,我正在寻找的行为类似
我是一名优秀的程序员,十分优秀!