Linux systemd 取消卡住的工作

阅读:1245

Tsung 2016-09-19 00:00:00    Tsung笔记

Debian / Ubuntu Linux 全面采用 systemd,在使用上都跟之前操作集成的很好,所以也没什么问题。

不过,最近想要 restart 某个 service 时,发现一直卡在 stop,kill 掉后,卡在无法 start,要怎么查看和解决呢?

Linux systemd 取消卡住的工作

systemctl 无法重新启动服务,而且这个现象会全面卡住,造成所有的 service 都无法重新启动。

此时可以使用 systemctl list-jobs 来看有哪些 jobs 在 waiting 或者哪些正好卡在那里。

若还是卡住,可以用 systemctl show 来看详细的情形,若有某些特定参数,可以使用 systemctl show service-name -p xxx 来看

若是这个 service 启动需要时间,想要不卡住其他的服务,可以试试看 --no-block 的参数

看到卡在那边的 id,要如何砍掉呢?

  • 砍 list-jobs 里面的 id,可以使用 systemctl cancel $pid 来达成。

systemctl 操作范例

  1. sudo systemctl list-jobs # 列出有哪些工作卡住
  2. sudo systemctl show nagios-nrpe-server.service # 查看原因
  3. sudo systemctl show SERVICE_NAME.service -p TimeoutStopUSec # 若是 TimeoutStopUSec 的问题
  4. sudo systemctl cancel 9244692 # 砍掉卡住的工作项目
  5. sudo systemctl restart nagios-nrpe-server.service --no-block
  6. 若上述都解决不掉,可能就只能重新开机解决了~

相关网页

相关标签:
linux