어제 시스템을 일시 중지했을 때 작업이 종료되지 않았으며 systemd-suspend.service
그 이후로 작업이 중단 없이 자고 있습니다.
# systemctl list-jobs
JOB UNIT TYPE STATE
21595 post-resume.target start waiting
21593 systemd-suspend.service start running
21592 suspend.target start waiting
21596 post-resume.service start waiting
# systemctl status systemd-suspend.service
● systemd-suspend.service - Suspend
Loaded: loaded (/nix/store/2jspk70lir7jcn1krax8haw2j7486i3a-systemd-243.3/example/systemd/system/systemd-suspend.se>
Active: activating (start) since Sat 2020-04-04 03:07:36 CEST; 23h ago
Docs: man:systemd-suspend.service(8)
Main PID: 16761 (systemd-sleep)
IP: 0B in, 0B out
Tasks: 1 (limit: 4915)
Memory: 1.0M
CPU: 20ms
CGroup: /system.slice/systemd-suspend.service
└─16761 /nix/store/2jspk70lir7jcn1krax8haw2j7486i3a-systemd-243.3/lib/systemd/systemd-sleep suspend
Apr 04 03:07:36 phlegethon systemd[1]: Starting Suspend...
Apr 04 03:07:36 phlegethon systemd-sleep[16761]: Suspending system...
# ps aux |grep suspend
root 16761 0.0 0.0 10364 2052 ? Ds Apr04 0:00 /nix/store/2jspk70lir7jcn1krax8haw2j7486i3a-systemd-243.3/lib/systemd/systemd-sleep suspend
정지를 수동으로 트리거하려고 하면 커널(5.4.14)이 EBUSY로 응답합니다.
# echo mem >/sys/power/state
-bash: echo: write error: Device or resource busy
커널이 디스크 중 하나를 동기화하는 중에 멈춘 것 같습니다.
# cat /proc/16761/stack
[<0>] iterate_bdevs+0x98/0x142
[<0>] ksys_sync+0x6e/0xb0
[<0>] ksys_sync_helper+0x13/0x90
[<0>] pm_suspend.cold.8+0x213/0x361
[<0>] state_store+0x80/0xe0
[<0>] kernfs_fop_write+0xc1/0x1a0
[<0>] vfs_write+0xa5/0x1a0
[<0>] ksys_write+0x59/0xd0
[<0>] do_syscall_64+0x4e/0x120
[<0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
이제 이 상태에서는 머신을 제대로 종료할 수도 없는 것 같습니다.
# systemctl poweroff
Failed to power off system via logind: There's already a shutdown or sleep operation in progress
그러면 어떻게 해야 합니까? 큰 총(Sysrq)에 손을 뻗고 싶은 유혹이 있지만 실제로 작동하는지 궁금합니다. sync(1)
예상대로 그냥 멈춰서 시도하기가 꺼려집니다.
또, 알 수 있는 방법이 있나요?어느커널이 기다리고 있는 디스크 장치는 무엇입니까? 나는 그것이 단지 USB 장치이고 큰 문제가 아니기를 바랍니다.
답변1
나는 이것이 질문에 대한 정확한 대답이 아니라는 것을 알고 있지만 아마도 도움이 될 것입니다.
당신이나 이 글을 읽는 다른 사람.
비슷한 문제가 있었거나 여전히 있습니다. 보류 중인 작업은 시스템으로 반환되고 해당 작업은 보류됩니다.
24913 systemd-suspend.service start running
24912 suspend.target start waiting
계속하려고 했더니 당신과 같은 메시지가 나왔습니다.
# systemctl suspend
Failed to suspend system via logind: There's already a shutdown or sleep operation in progress
내 목표는 종료하는 것이 아니라 일시 중지하는 것입니다. 이것이 제가하는 것입니다.
# systemctl cancel
# systemctl stop systemd-suspend.service
먼저 매달기 작업을 중지합니다.
둘째, 시스템이 즉시 중단됩니다.
취소 후 일시 중지를 시도했지만 systemctl suspend
결국 같은 문제가 다시 발생했습니다.
깨어난 후 서비스를 시작했는데 시스템이 다시 일시중지되었습니다.
이제 이 해결 방법 없이 일시 중지할 수 있기를 바랍니다.
답변2
비슷한 문제가 발생했습니다. 나는 내 사건의 근본 원인을 찾으려고 하루 이상을 보냈습니다. 다행히도 불과 몇 주 전의 Ubuntu 20.04 설치이므로 새로 설치에 가깝습니다.
저의 경우 디스플레이 관리자에 로그인한 후 NetworkManager가 실행되지 않거나 다시 시작되지 않는 등(기본값과 동일) WiFi에 액세스할 수 없었습니다.
나는 또한 위에서 언급한 것과 동등한 것을 보았습니다.
# systemctl list-jobs
JOB UNIT TYPE STATE
21593 systemd-suspend.service start running
이를 사용하면 systemctl cancel 21593
작동이 중지되고 문제가 해결되어 이것이 실제로 문제임을 나타냅니다.
man systemd-sleep
발견 에서
시스템 일시 중지 및/또는 최대 절전 모드에 들어가기 전에 systemd-suspens.service(및 기타 언급된 장치)는 /lib/systemd/system-sleep/...이 디렉터리의 모든 실행 파일에 있는 모든 실행 파일을 실행합니다. 실행 파일은 모두 병렬로 실행됩니다. 모든 실행 파일이 완료될 때까지 작업이 계속되지 않습니다.
그래서 검사를 해보니 그 안에 제가 최근에 설치한 스크립트가 /lib/systemd/system-sleep
포함되어 있다는 것을 알게 되었습니다 . tlp
다음을 사용하여 tlp 및 관련 패키지를 제거했습니다.
sudo apt --purge remove tlp tlpui tlp-rdw
문제가 완전히 사라집니다.