If a program is writing to stdout, there is a big risk that if the other end of the pipe is frozen, the program itself will hang.
root@bigfoot-kafka3:/etc/service/fk-3p-kafka/log/main# fuser *
current: 32391
lock: 32391
root@bigfoot-kafka3:/etc/service/fk-3p-kafka/log/main# ls -l /proc/32390
lrwxrwxrwx 1 root root 0 Apr 11 16:53 cwd -> (deleted)/etc/sv/fk-3p-kafka/log
lrwxrwxrwx 1 root root 0 Apr 11 16:53 exe -> /usr/bin/supervise
root@bigfoot-kafka3:/etc/service/fk-3p-kafka/log/main# ls -l /proc/4174
lrwxrwxrwx 1 root root 0 Apr 11 16:53 cwd -> /etc/sv/fk-3p-kafka/log
lrwxrwxrwx 1 root root 0 Apr 11 16:53 exe -> /usr/bin/supervise
- Log4j default synchronous appenders use a
synchronized
block to write to output stream. This can lock up your process. - Pipes and fifos freeze the left hand side when buffer limit is reached. TODO find out how and what the limits are.
- Supervise + Supervise + Multilog needs to be treated carefully and idiomatically.