[Bug 236117] /usr/sbin/daemon should support stdin,stdout,stderr redirect to files other than /dev/null
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Mar 1 01:07:02 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236117
Bug ID: 236117
Summary: /usr/sbin/daemon should support stdin,stdout,stderr
redirect to files other than /dev/null
Product: Base System
Version: 11.2-STABLE
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: bugs at FreeBSD.org
Reporter: zhoutao at laocius.org
The daemon command has an option `-f`, which, according to the man page,
redirects stding,stdout,stderr to /dev/null.
This is fine. But if I cannot redirect stdin, stdout, stderr to different files
respectively.
There is a `-o` option,
```
-o output_file
Append output from the daemonized process to output_file. If the
file does not exist, it is created with permissions 0600.
```
The problem I am having now is that daemon command was used in some freebsd
rc.d scripts without the `-f` option. When I try to restart those services
through python subprocess.Popen, it would hang indefinitely.
The problem can be easily reproduced by
```
python3 -c 'import subprocess; subprocess.Popen(["/usr/sbin/service",
"mytestservice", "onerestart"], stderr=subprocess.PIPE).communicate()'
```
I can add the `-f` option to fix the problem, but `-f` will override the `-o`
option, and I end up with no log at all.
I think it would be nice if the daemon command can support redirecting stdin,
stdout, stderr separately.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list