improvement by passfd
refactor umgmt
rename func
pass fd can work now

but, sometimes it will raise EGAIN OSError when recvfd
rename dir