复制
收藏
提问
全网
linux命令 延迟10s后向systemd日志写入字符串“well done”,并以亲和数5,z在后台执行该命令
3个月前
理解问题linux命令 延迟10s后向systemd日志写入字符串“well done”,并以亲和数5,z在后台执行该命令
已完成理解「linux命令 延迟10s后向systemd日志写入字符串“well done”,并以亲和数5,z在后台执行该命令」
展开阅读网页
要在Linux中延迟10秒后向systemd日志写入字符串“well done”,并且以亲和数5和z在后台执行该命令,你可以使用以下命令组合:
sleep
命令用于延迟执行。systemctl
命令用于向systemd日志写入信息。&
符号用于将命令放入后台执行。nohup
命令用于忽略挂起信号,确保命令持续运行。nice
和ionice
命令用于设置进程的优先级,其中nice
设置CPU优先级,ionice
设置I/O优先级。
首先,使用 sleep 10
来延迟10秒。然后,使用 systemctl status
命令来写入日志,因为 systemctl
命令本身并不直接支持写入自定义的日志消息。但是,你可以使用 systemctl status
命令来查看服务状态,并将输出重定向到一个文件中,然后使用 echo
命令将“well done”字符串追加到该文件中。最后,使用 nice -n 5 ionice -c 3
来设置进程的CPU和I/O优先级,其中 5
是nice值,3
是ionice的类("z" 代表"best effort",即最低优先级)。由于 nice
和 ionice
命令不支持直接写入systemd日志,我们将使用 nohup
来确保命令在后台持续运行。
以下是具体的命令行示例:
nohup nice -n 5 ionice -c 3 bash -c "sleep 10 && echo 'well done' >> /tmp/systemd_log.txt && systemctl status >> /tmp/systemd_log.txt" &
这个命令做了以下几件事:
nohup
确保即使终端关闭,命令也会继续运行。nice -n 5
将命令的CPU优先级设置为5,这是一个较低的优先级。ionice -c 3
将命令的I/O优先级设置为"best effort"。bash -c
允许我们在一个子shell中执行一系列命令。sleep 10
延迟10秒。echo 'well done' >> /tmp/systemd_log.txt
将字符串“well done”追加到/tmp/systemd_log.txt
文件中。systemctl status >> /tmp/systemd_log.txt
将systemd的状态追加到同一个文件中。&
将整个命令放入后台执行。
更专业一些
转笔记
专业
linux命令 延迟10s后向systemd日志写入字符串“well done”,并以亲和数5,z在后台执行该命令不在提醒