Attempting to stop/resume sommelier results in sommelier and the called app dying upon being run again:
sommelier -X xterm
^Z
bg
(EE) failed to write to XWayland fd: Broken pipe
xterm: fatal IO error 104 (Connection reset by peer) or KillClient on X server ":1"
[1]+ Done sommelier -X xterm
Likely something need to handle EINTR gracefully.
684 epoll_wait(3, [{EPOLLIN, {u32=3756533856, u64=133259411859552}}], 32, -1) = 1
684 poll([{fd=6, events=POLLIN}], 1, -1) = 1 ([{fd=6, revents=POLLIN}])
684 recvmsg(6, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="#\0\0\0\0\0\f\0\222M\367\4", iov_len=944}, {iov_base="", iov_len=3152}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 12
684 sendmsg(10, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="!\0\0\0\0\0\f\0\222M\367\4\1\0\0\0\1\0\f\0!\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 24
684 epoll_wait(3, <unfinished ...>
687 <... epoll_wait resumed> [{EPOLLIN, {u32=41418768, u64=139234291220496}}], 256, 599738) = 1
687 recvmsg(22, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="!\0\0\0\0\0\f\0\222M\367\4\1\0\0\0\1\0\f\0!\0\0\0", iov_len=2732}, {iov_base="", iov_len=1364}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
687 poll([{fd=22, events=POLLOUT}], 1, 5) = 1 ([{fd=22, revents=POLLOUT}])
687 epoll_wait(3, 0x7fffe798f250, 256, 599709) = -1 EINTR (Interrupted system call)
684 <... epoll_wait resumed> 0x7fffe15cae80, 32, -1) = -1 EINTR (Interrupted system call)
700 <... select resumed> ) = ? ERESTARTNOHAND (To be restarted if no handler)
696 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
695 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
684 --- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=269, si_uid=1000} ---
696 futex(0x7ea2027ac308, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
700 --- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=269, si_uid=1000} ---
695 futex(0x7ea2027ac1a0, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
700 select(6, [3 5], [], NULL, NULL <unfinished ...>
694 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
693 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
692 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
691 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
690 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
692 futex(0x7ea2027abd68, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
689 <... futex resumed> ) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
691 futex(0x7ea2027abc00, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
690 futex(0x7ea2027aba98, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
689 futex(0x7ea2027ab930, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
694 futex(0x7ea2027ac038, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
684 exit_group(0 <unfinished ...>
687 --- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=269, si_uid=1000} ---
684 <... exit_group resumed>) = ?
693 futex(0x7ea2027abed0, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
687 poll([{fd=22, events=POLLOUT}], 1, 5) = 1 ([{fd=22, revents=POLLOUT}])
687 epoll_wait(3, [{EPOLLIN|EPOLLHUP, {u32=43897056, u64=139234293698784}}, {EPOLLIN|EPOLLHUP, {u32=41418768, u64=139234291220496}}], 256, 597006) = 2
684 +++ exited with 0 +++
687 writev(21, [{iov_base="V\2V\0\7\0 \0\0\0\0\0\7\1\0\0\317\330\31\0\326\315\31\0\0\0\0\0\0\0\0\0", iov_len=32}], 1) = -1 EPIPE (Broken pipe)
687 --- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=687, si_uid=1000} ---
687 epoll_ctl(3, EPOLL_CTL_DEL, 21, 0x7fffe798ef00) = 0