Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Should a UNIX daemon process close open fds? Post 30595 by Perderabo on Thursday 24th of October 2002 09:10:32 AM
Old 10-24-2002
I'm not sure why you think fcntl() fits into this. To close an fd you use close().

It is absolutely required that a daemon close fd's 0, 1, and 2. After that, as the lawyers say, "reasonable minds may disagree". In the days when we were limited to 64 fd's, it was reasonable to simply loop invoking close() on them all. If I was to write a daemon, yes I guess that I would use get getconf(_SC_OPEN_MAX) to get the max possible fd and loop invoking close() on every last one. This could be thousands of close() calls that aren't needed, but close() fails very quickly when invoked against a non-open fd.

If they are closing stdin, stdout, and stderr, I would have to say that their stance is reasonable. But I do believe they would have a difficult time producing any language in posix that supports them. The posix standard is on-line and we have a link to it on our home page. Exactly which section do they cite?

It should be very easy to solve your problem though. Can't you change the app server to not leave extra fd's open?

Or if this daemon is called, say, daemonx, just write a program that closes all fd's and then exec()'s daemonx. Call your program pre_daemonx. Have your app server call pre_daemonx.

Is the name "daemonx" hard-coded into an unchangable app server? No problem. Rename "daemonx" to "real.daemonx" and call your program "daemonx".

Whichever path you take here, fixing this should be a 10 minute problem.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

File status - open/close ??

Is there any commands in UNIX, like isopen(),isclose() to know whether a file has been opened for read/write purpose.? Thanks (3 Replies)
Discussion started by: Pal
3 Replies

2. Solaris

close open files before remove

Hi I have a script to remove log files when it reaches %70 usage in order to descending order of dates. But sometimes it happens to remove open - being processes files , so makes them unlinked from the directors and results them disappeared. How can I solve this problem , simple scenario I... (9 Replies)
Discussion started by: xramm
9 Replies

3. UNIX for Advanced & Expert Users

Number of open files (Dir's) how to close?

I am having a client/server application which will download files from server. If server has directories, it will create directories/sub directories and then download files. In this process, I observed that number of open files are more than 400 (which is approxmately same as number of dir/subdir... (1 Reply)
Discussion started by: satyam90
1 Replies

4. Windows & DOS: Issues & Discussions

Can DOS close an open file?

I'm trying to setup a cron job for my brother that goes out to the web and retrieves an excel file and overwrites the existing copy on his desktop. The problem I'm facing is I have to kill the process (excel.exe) if the file is open while the batch file runs, otherwise, it will create another copy... (2 Replies)
Discussion started by: quattro20v
2 Replies

5. Solaris

file open/read/write/close/access by process

Hi want to know what file (descriptor+filename+socket) is being accessed by particular process on solaris. Purpose : while running perf. test, needs to find where is the bottleneck. We are providing concurrnet load for around 1 hr and needs to capture data related to file usage pattern... (1 Reply)
Discussion started by: raxitsheth
1 Replies

6. Programming

when parent process close, how to close the child?

can someone provide an example, where if the parent process quits for any reason, then the child process will also close? (3 Replies)
Discussion started by: omega666
3 Replies

7. IP Networking

Open/close of ports

Hi, I have read some forum theads about the open and close ports. some points are clear and it is not working on my machine or something am i missing? I have commented out a port /etc/services, one application uses then when i use the telnet <hostname> <port_blocked> it shows connected..... (1 Reply)
Discussion started by: balamv
1 Replies

8. UNIX for Advanced & Expert Users

Close file descriptor without terminating process

Can any help me in finding the way to close opened file descriptor in Solaris ,without killing process. As accidently a file was removed which was opened by a process. Much thanks in advance :) (11 Replies)
Discussion started by: nitj
11 Replies

9. Shell Programming and Scripting

Work with setsid to open a session and close it correctly

I would like to create the following script: run a python script with setsid python may or may not fail with exception check if all of the group processes were terminated correctly if not, kill the remaining processes How can I do that? Thanks a lot (3 Replies)
Discussion started by: ASF Studio
3 Replies

10. Shell Programming and Scripting

How to get value from a close and open parenthesis?

Hi Gurus, I have an input like the one below. What i wanted to achieved is to create a select statement based from that information INPUTInsert into table_name (col1,col2,col3,col4,col5,DATE1,DATE2,col6,col7,col8,col9,col10,col11) values (6752,14932156,24,'ALL','Staff',to_date('04/17/2017... (6 Replies)
Discussion started by: ernesto
6 Replies
fsdaemon(1M)															      fsdaemon(1M)

NAME
fsdaemon - pass-through daemon for processing system commands SYNOPSIS
fork] DESCRIPTION
The is a user level daemon that provides a mechanism to pass information between applications and common commands and library functional- ity, allowing certain applications to dynamically add functionality to a system. This is currently only supported for the class of APIs, such as: The API are not yet publicly available, but the commands that use the mentioned APIs depend on this daemon to always be running in the HP- UX environments. Options When is started, indicates whether it should fork a child process and exit the parent process or run just as the parent process and not return. A value of 1 for fork will make fork and exec a child process and then cause the parent process to exit. Kills the current running instance of Tests and waits until is ready to process commands. There is a window where could be started and not yet setup to process commands. The caller should invoke separately with the option to block until is ready to process commands. The entries to start are in the file. These entries be present to ensure correct functionality of the system. They should appear as one of the first entries in placing entries before entries in is dangerous and unsupported. The following are some of the HP-UX commands that use via the above APIs: and RETURN VALUE
: 0 Successful start of If invoked with the option, 0 is always returned. >0 Errno of failure that caused to fail to start. This applies only if was started with the option. ERRORS
If is not running, the errno will be returned by an application that invokes these APIs. If this happens, please see your system adminis- trator to make sure is properly running. EXAMPLES
To start such that it can be invoked without permanently blocking the calling process: To kill the currently running instance of To check to see if the currently running instance of is ready and able to process requests sent to it: The following entries for starting should appear in the file: WARNINGS
The APIs are not yet publicly available, but the commands that use the mentioned family of APIs depend on this daemon to always be running on HP-UX environments. The administrator is not expected to invoke the command from the shell prompt; it should always be started via an entry in This manpage is provided for administrator's trouble shooting purposes, and to allow the system administrator to repair the entries for this daemon in case of corruption. The interface/options provided in this manpage are HP-UX release specific, and may be different in future releases. AUTHOR
was developed by HP. SEE ALSO
fstyp(1M), mkboot(1M), mount(1M), fstatfsdev(3C), fstatvfsdev(3C), statvfsdev(3C), statfsdev(3C), inittab(4). fsdaemon(1M)
All times are GMT -4. The time now is 05:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy