标签: real-time

以非常短的时间间隔精确运行 unix 命令,而不会随着时间的推移累积时间延迟

我希望能够在很长一段时间内精确地每秒运行一个 UNIX 命令。

我需要一个解决方案,它在一段时间后不会落后,因为命令本身需要执行时间。sleepwatch和某个python 脚本在这方面都让我失望。

在诸如http://Arduino.cc之类的微控制器上,我会通过硬件时钟中断来做到这一点。我想知道是否有类似的时间精确的shell脚本解决方案。我在 StackExchange.com 中找到的所有解决方案,如果运行超过几个小时,都会导致明显的时间延迟。请参阅下面的详细信息。

实际用途/应用

我想通过nc每 1 秒通过(netcat)发送时间戳来测试我的网络连接是否持续连接。

发件人:

precise-timestamp-generator | tee netcat-sender.txt | nc $receiver $port
Run Code Online (Sandbox Code Playgroud)

接收者:

nc -l -p $port > netcat-receiver.txt
Run Code Online (Sandbox Code Playgroud)

完成后,比较两个日志:

diff netcat-sender.txt netcat-receiver.txt
Run Code Online (Sandbox Code Playgroud)

差异将是未传输的时间戳。由此我可以知道我的 LAN / WAN / ISP 什么时候出问题。


解决方案 睡眠

while [ true ]; do date "+%Y-%m-%d %H:%M:%S" ; sleep 1; done | tee timelog-sleep.txt
Run Code Online (Sandbox Code Playgroud)

随着时间的推移获得一定的偏移量,因为循环中的命令也需要一点时间。

精确

cat timelog-sleep.txt

2012-07-16 00:45:16
[...]
2012-07-16 10:20:36
Run Code Online (Sandbox Code Playgroud)

经过的秒数:34520 …

cron real-time

38
推荐指数
6
解决办法
1万
查看次数

使用 QNX 或 VxWorks 等 RTOS 代替 Linux 的优势?

在开发需要实时操作系统的解决方案时,QNX 或 VxWorks 等操作系统与 Linux 相比有哪些优势?

或者换句话说,因为这些操作系统是专门为实时、嵌入式使用而设计的——而不是 Linux,后者是一种更通用的系统,可以针对实时使用进行定制——你什么时候需要使用其中的一个这些操作系统代替Linux?

linux real-time rtos vxworks

15
推荐指数
2
解决办法
1万
查看次数

实时显示硬盘剩余空间的cmd工具

是否有命令行工具可以实时显示我的外部硬盘驱动器上剩余多少空间?

ubuntu terminal debian real-time hard-disk

15
推荐指数
1
解决办法
8986
查看次数

Real time priorities in non real time OS

If I do the following command on my standard Linux Mint installation:

comp ~ $ ps -eo rtprio,nice,cmd
RTPRIO  NI CMD
...
99   - [migration/0]
99   - [watchdog/0]
99   - [migration/1]
 -   0 [ksoftirqd/1]
99   - [watchdog/1]
Run Code Online (Sandbox Code Playgroud)

我得到了一些实时优先级为 99 的进程。

rtprio在非实时 Linux 中是什么意思?这是否意味着如果我只运行一个rtprio99的程序,它会实时运行?实时操作系统在这个故事中处于什么位置?

linux process real-time priority

10
推荐指数
1
解决办法
2787
查看次数

如果文件更改,实时备份?

是否有任何类似于Yadis 的linux/unix 控制台应用程序可以让我:

  • 控制台设置
  • 备份多个目录
  • 文件(文本文件)更改后实时备份/同步

更新 1:

我编写 shell 脚本、ruby 脚本、别名等使我的工作更轻松。我想备份这些文件。我正在寻找的解决方案将在对它们进行任何更改后将这些文件复制到我的 dropbox 目录的子目录中,就是这样。备份已完成并可从任何地方使用。总是新鲜和准备好,我不必考虑它。

我知道我每天可以运行几次 cron,但我认为必须有一个解决方案可以解决我在 linux 上寻找的问题。我不是很有 linux 经验,所以我在这里问。

linux suse backup real-time

9
推荐指数
1
解决办法
3183
查看次数

以实时优先级运行进程的负面影响?

以实时优先级 ( chrt -f 99)运行进程是否有任何缺点?

我的假设是,这与亲和力相结合将确保我的进程的任何抢占最小,因此任何抖动(特别是网络延迟)都将最小化 - 这对整体延迟没有帮助,但此时我更与抖动有关。

(内核:2.6.16/3.0)

linux process real-time

9
推荐指数
1
解决办法
2334
查看次数

当前时间/日期作为 BASH 中的变量并使用脚本停止程序

我正在尝试创建一个 raspberry pi spy cam bug。我正在努力使为各种进程创建的新文件提出

NOW=`date '+%F_%H:%M:%S'`;
Run Code Online (Sandbox Code Playgroud)

这工作正常。但它需要一个echo来更新时间 $NOW也在/home/pi/.bashrc文件中同样的问题,不更新wo

. ~/.bashrc 
Run Code Online (Sandbox Code Playgroud)

在这个论坛上找到它并且它有效:

#! /bin/bash

NOW=`date '+%F_%H:%M:%S'`;

filename="/home/pi/gets/$NOW.jpg"

raspistill -n -v -t 500 -o $NOW.jpg;

echo $filename;
Run Code Online (Sandbox Code Playgroud)

我不明白它是如何工作的,因为它在 raspistil 的输出之前和引号中。

谢谢大家!!!

bash real-time shell-script environment-variables timestamps

7
推荐指数
1
解决办法
5万
查看次数

rtkit:列出它正在“监督”的线程?

rtkit显然知道它正在“监督”哪些线程,因为它会向系统日志发送垃圾邮件,例如

rtkit-daemon[1277]: Supervising 3 threads of 2 processes of 1 users.
Run Code Online (Sandbox Code Playgroud)

然而,这个邪恶的小东西似乎没有提供列出那些“受监督”进程/线程的方法。rtkitctl可以选择终止或重新启动守护进程以及“重置”线程(无论这意味着什么)。至少在 Debian 上,我没有看到任何其他实用程序。也许有隐藏的DBus接口,或者发行版没有打包一些实用程序。

那么,ps有没有办法列出那些“受监督”的线程,或者这只是整个dbus/systemd生态系统的另一个不透明的方面?

real-time systemd pulseaudio journalctl rtkit-daemon

7
推荐指数
1
解决办法
1970
查看次数

如何对 ps 输出进​​行排序以查找进程实时优先级并识别进程当前占用的运行队列

如何正确识别当前占用CPU队列的实时进程并使用ps统计它们?我知道有一堆像 prio、rtprio、pri、nice 这样的文件,但不知道正确使用。似乎我需要使用类似的东西ps -eo rtprio,prio,cpu,cmd --sort=+rtprio来获取完整列表,但对我来说似乎不正确,因为很多进程-在 RTPRIO 列中都带有符号。例如,我有一个运行 Oracle Linux 的 48 核系统,并尝试确定以下问题:

  1. 哪些进程占用了运行队列?它们的数量是多少?
  2. 如何识别以实时模式运行或具有更高优先级的进程?

cpu process ps real-time priority

6
推荐指数
1
解决办法
6420
查看次数

为什么 SIGRTMIN(第一个实时信号)的整数值是 34 而不是 32?

检查kill -l命令的输出

$ kill -l
1) SIGHUP    2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
6) SIGABRT   7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) …
Run Code Online (Sandbox Code Playgroud)

signals real-time glibc linux-kernel

6
推荐指数
1
解决办法
4821
查看次数