mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 15:00:12 +00:00
6c1676c515
afsd prints output to the stdio streams. Usually afsd is run by an init script or systemd unit, so the output is not directed to the terminal and the stdio streams are buffered. When afsd forks child processes, the forked processes inherit the buffered streams and this causes the output to be duplicated in the child proceses. For example, when running afsd from systemd, the journal contains duplicated output messages: # systemctl start openafs-client ... ... systemd[1]: Starting openafs-client.service - OpenAFS Client Service... ... afsd[292192]: afsd: All AFS daemons started. ... afsd[292170]: afsd: All AFS daemons started. ... fedora systemd[1]: Started openafs-client.service - OpenAFS Client Service. To avoid the duplicated messages, and to ensure output is captured in the event of a crash, set the stdout and stderr streams to be unbuffered using setvbuf() when the afsd process starts. Thanks to Mark Vitale for diagnosing this issue and to Andrew Deason for suggesting the use of setvbuf() to set the stream buffering. Change-Id: I57faac38f6667d431557793ce06a11b7f390a414 Reviewed-on: https://gerrit.openafs.org/15829 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> |
||
---|---|---|
build-tools | ||
doc | ||
src | ||
tests | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.splintrc | ||
acinclude.m4 | ||
CODING | ||
configure-libafs.ac | ||
configure.ac | ||
CONTRIBUTING | ||
INSTALL | ||
libafsdep | ||
LICENSE | ||
Makefile-libafs.in | ||
Makefile.in | ||
NEWS | ||
NTMakefile | ||
README | ||
README-WINDOWS | ||
regen.sh |
AFS is a distributed file system that enables users to share and access all of the files stored in a network of computers as easily as they access the files stored on their local machines. The file system is called distributed for this exact reason: files can reside on many different machines, but are available to users on every machine. OpenAFS 1.0 was originally released by IBM under the terms of the IBM Public License 1.0 (IPL10). For details on IPL10 see the LICENSE file in this directory. The current OpenAFS distribution is licensed under a combination of the IPL10 and many other licenses as granted by the relevant copyright holders. The LICENSE file in this directory contains more details, thought it is not a comprehensive statement. See INSTALL for information about building and installing OpenAFS on various platforms. See CODING for developer information and guidelines. See NEWS for recent changes to OpenAFS.