[백스토리] 작동하는 것 같은 CentOS 7.5.1804 메일 서버(postfix/dovecot)가 있지만 새 이메일 클라이언트를 추가하면 사용자를 위한 메일 폴더가 생성되지 않습니다.
공간이 부족하여 중단되었는지 확인하기 위해 df -h를 실행했습니다. 그런 다음 df를 실행했는데도 중단되었습니다. 이 문제를 발견했습니다.다시 시작하지 않고는 종료할 수 없는 프로세스를 종료하는 방법은 무엇입니까?그리고 주변을 탐색하기 시작했습니다.
내 서버에는 물리적 드라이브가 두 개밖에 없습니다. 각 마운트 지점(/ 및 /mnt/external)에서 df를 실행할 수 있으며 제대로 작동합니다. mount를 실행했는데 익숙하지 않은 항목이 많이 표시되었습니다. 나는 그들이 모두 df에 나타나지 않는다고 확신하므로 df의 출력을 내가 가지고 있는 다른 CentOS 시스템(동일 버전)의 마운트와 비교했고 df는 일부 마운트 지점(/, /dev, /dev/)을 보여주었습니다. shm, /run, /sys/fs/cgroup, /boot, /run/user/1000), 그래서 의심되는 서버에서 각각에 대해 개별적으로 df를 실행해 보았는데 모두 올바르게 완료되었습니다.
중단된 df 인스턴스에서 /proc/$PID/*에 액세스할 수 있으며(인용된 질문의 답변 중 하나에서 알 수 있듯이) cat /proc/$PID/syscall을 수행할 수 있으며 변경되지 않습니다. 어떻게 설명해야할지 모르겠습니다.
StackExchange, 당신이 나의 유일한 희망입니다! (좋아, 아닐 수도 있지만 누군가가 나에게 올바른 방향을 알려줄 수 있기를 바랍니다)
dmesg 출력:
[4400391.164795] systemd-journald[16672]: File /run/log/journal/b2bcc90256f446df876bea47007f387b/system.journal corrupted or uncleanly shut down, renaming and replacing.
[4400392.726853] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
this repeats 556 times
[4856400.839491] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[4856640.666072] INFO: task df:22269 blocked for more than 120 seconds.
[4856640.666180] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[4856640.666310] df D ffff88007fc13680 0 22269 21526 0x00000084
[4856640.666316] ffff88004fa57a30 0000000000000082 ffff880079fd4440 ffff88004fa57fd8
[4856640.666320] ffff88004fa57fd8 ffff88004fa57fd8 ffff880079fd4440 ffff88003641cf98
[4856640.666324] ffff88003641cfa0 7fffffffffffffff ffff880079fd4440 ffff880035e44e00
[4856640.666328] Call Trace:
[4856640.666338] [<ffffffff816096a9>] schedule+0x29/0x70
[4856640.666342] [<ffffffff816075f9>] schedule_timeout+0x209/0x2d0
[4856640.666347] [<ffffffff810980e6>] ? finish_wait+0x56/0x70
[4856640.666351] [<ffffffff81607a42>] ? mutex_lock+0x12/0x2f
[4856640.666355] [<ffffffff8124a8fa>] ? autofs4_wait+0x37a/0x870
[4856640.666359] [<ffffffff81609ba6>] wait_for_completion+0x116/0x170
[4856640.666363] [<ffffffff810a9500>] ? wake_up_state+0x20/0x20
[4856640.666366] [<ffffffff8124ba5b>] autofs4_expire_wait+0x6b/0x110
[4856640.666371] [<ffffffff81270fcd>] ? selinux_inode_setsecurity+0x6d/0x140
[4856640.666374] [<ffffffff81248b52>] do_expire_wait+0x172/0x190
[4856640.666378] [<ffffffff81248d7b>] autofs4_d_manage+0x9b/0x160
[4856640.666383] [<ffffffff811d0b85>] follow_managed+0xb5/0x300
[4856640.666386] [<ffffffff811d149b>] lookup_fast+0x19b/0x2e0
[4856640.666390] [<ffffffff811d4495>] path_lookupat+0x165/0x7a0
[4856640.666394] [<ffffffff811ab5a5>] ? kmem_cache_alloc+0x35/0x1d0
[4856640.666397] [<ffffffff811d6a0f>] ? getname_flags+0x4f/0x1a0
[4856640.666400] [<ffffffff811d4afb>] filename_lookup+0x2b/0xc0
[4856640.666404] [<ffffffff811d7b37>] user_path_at_empty+0x67/0xc0
[4856640.666408] [<ffffffff810f0ad2>] ? from_kgid_munged+0x12/0x20
[4856640.666412] [<ffffffff811cba1f>] ? cp_new_stat+0x14f/0x180
[4856640.666415] [<ffffffff811d7ba1>] user_path_at+0x11/0x20
[4856640.666419] [<ffffffff811cb513>] vfs_fstatat+0x63/0xc0
[4856640.666422] [<ffffffff811cba7e>] SYSC_newstat+0x2e/0x60
[4856640.666426] [<ffffffff810fac96>] ? __audit_syscall_exit+0x1e6/0x280
[4856640.666429] [<ffffffff811cbd5e>] SyS_newstat+0xe/0x10
[4856640.666434] [<ffffffff81614209>] system_call_fastpath+0x16/0x1b
strace df는 다음으로 끝납니다:
stat("/sys/fs/selinux", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat("/proc/sys/fs/binfmt_misc",
답변1
@StéphaneChazelas 덕분에 strace를 사용하여 df가 어디에 걸려 있는지 확인했고 그 결과 다음과 같은 답변을 얻었습니다.https://serverfault.com/a/918160/256146
다시 시작한 다음 dovecot을 다시 시작하여 시스템 작업을 복원하십시오.