首页/系统/Linux 运维命令速查/systemd-run 临时运行/一次性任务
systemd 与服务42 条

systemd-run 临时运行/一次性任务

systemd-run 即时拉起临时单元:--unit 命名、--on-active 延迟、--scope 加入当前会话 cgroup;调试与压测的轻量容器。

Linux 运维命令速查系统更新于 2026-10-13

systemd-run 是什么

systemd-run 能把一条命令临时交给 systemd 托管,既不用写单元文件也不改配置:它即时创建一个瞬态单元,命令输出进 journal,资源限制、执行时机等参数都能用 systemd 的原生属性表达。它的价值集中在一次性场景——延迟执行、临时限制内存跑压测、以独立单元形式启动进程并保留完整启动日志与状态,比单纯挂在后台更容易被 systemd 工具链观察到。

基本信息

适用平台使用 systemd 的 GNU/Linux(PID 1 必须是 systemd)
语法systemd-run [选项] 命令...
常用选项--unit 命名、--collect 结束后清理、--on-active 延迟、--scope 在当前会话层级运行
资源限制用属性参数传内存上限、CPU 配额等
状态查看systemctl status 单元名或 journalctl -u 单元名
生命周期瞬态单元重启后不保留

典型使用场景

  • 延迟执行一条命令,例如几分钟后再跑一次任务。
  • 临时以受限资源运行压测工具,避免吃满整机。
  • 把一条命令作为独立单元启动,用统一方式查看状态与日志。
  • 复现服务启动失败:用与正式单元一致的属性临时启动观察现象。
  • 排障时隔离运行命令,避免污染当前 shell 的环境与工作目录。

常用写法

常用写法
systemd-run --unit=quicktest --collect /bin/sleep 60       # 命名瞬态单元
systemd-run --on-active=5m --unit=delayedjob /usr/local/bin/job.sh   # 延迟 5 分钟
systemd-run --scope -p MemoryMax=512M /opt/tool/stress --vm 1         # 限内存运行
systemd-run --unit=debugrun -p MemoryMax=256M -p CPUQuota=50% ./app   # 限 CPU 与内存
systemctl list-units 'run-*'                                # 查看瞬态单元
systemctl status quicktest --no-pager                       # 查看状态与退出信息
journalctl -u quicktest -n 20                               # 查看该单元输出

常用选项读法

选项作用使用要点
--unit给瞬态单元命名便于后续用 systemctl 查看与停止
--collect结束后自动清理不加会在系统里留下失败记录
--on-active延迟一段时间执行只执行一次,不是周期性任务
--scope在当前会话层级运行生命周期与调用者相关,行为不同
-p 属性设置单元属性可限制内存、CPU 配额等
--service-type指定服务类型影响进程模型与停止行为
--collect 让单元结束后自动清理:不加的话瞬态单元会留下失败记录,日积月累让整体状态巡检充满噪音,真正的故障被淹没。
systemd-run 依赖 PID 1 是 systemd:容器或旧发行版里可能不可用,动手前先确认初始化系统类型,否则会直接报错。
瞬态单元默认放在运行期目录,重启后不会保留;需要长期存在的服务仍应写正式单元文件,不要把临时单元当服务托管方案。

易错点

  • 忘记加自动清理选项,瞬态单元不断留下失败记录,系统状态巡检里噪音堆积,真实故障被忽略。
  • 在非 systemd 环境(容器、旧发行版)里使用 systemd-run 直接失败;使用前确认初始化系统。
  • 把 systemd-run 当定时任务方案:延迟选项只执行一次,周期性任务仍应交给定时器或计划任务。
  • 临时以资源限制运行命令后忘记确认退出状态,任务失败却没有察觉;结束后用状态命令或日志核实结果。

数据来源与参考

  • man 1 systemd-run

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌