10-24-2002
Should a UNIX daemon process close open fds?
I have a UNIX daemon process that's been started by a parent process, an application server.
The behavior of this daemon process is to inherit and use the app
server's file descriptors (ports/sockets).
When I shutdown the app server, the daemon continues to run, because there may be other applications that want to use it.
However, the app server won't restart, because the daemon process is holding its parents' ports.
There is a debate as to whether its the app server's or the daemon's responsibility to close the file descriptors (say, using fcntl(...)).
Which process has the responsibility of closing the open file
descriptors?
Richard Steven, in his Advanced Unix programming book says that the daemon should do it, but the people who created the daemon say the Posix way is better.
Any takers?
Thanks in advance,
Kunal
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
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
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
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
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
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
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
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
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
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
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
pcastctl(8) BSD System Manager's Manual pcastctl(8)
NAME
pcastctl -- Podcast Producer daemons control interface
SYNOPSIS
pcastctl status target on|off|start|stop|restart
OPTIONS
The available options are as follows:
status print status of running daemons
target affect agent or server daemon
start|stop|restart explicitly start/stop/restart daemon. Note that 'restart' will kill all instances of a given daemon, as will
'stop' if none is specified in the pid file.
RETURN VALUES
0 Completed succesfully.
1 Action failed
10 Not run as root.
50 Target not recognized: use 'a', or 's'.
51 Action not recognized: use start|stop|restart
52 Executables not found; may need to reinstall Podcast Producer.
53 Process directory not found; may need to reinstall Mac OS X.
54 Timeout waiting for action to complete.
55 Launchd manipulation failure.
FILES
/usr/libexec/podcastproducer/pcastagentd
Podcast Producer agent daemon
/usr/share/podcastproducer/pcastserverd
Podcast Producer server daemon
/var/run/pcastagentd.pid
Podcast Producer agent process ID
/var/run/pcastserverd.pid
Podcast Producer server process ID
/System/Library/LaunchDaemons/com.apple.pcastagentd.plist
Launchd agent daemon control file
/System/Library/LaunchDaemons/com.apple.pcastserverd.plist
Launchd server daemon control file
EXAMPLES
status of Podcast Producer agent daemon
$ pcastctl agent status
edit launchd configuration to launch server on system startup
$ pcastctl server on
DIAGNOSTICS
Warning: Warning: ## copies of (pcastagentd|pcastserverd) already running
Trying to launch another daemon when one or more already running; will usually succeed, but may cause unpredictable behavior.
See also RETURN VALUES, above.
ERRORS
Error: failed to launch (executable)
Tried to start/restart a give daemon, but failed.
Error: process 'executable' not currently running
Tried to kill a process which did not exist.
SEE ALSO
pcast(1) launchd(8)
HISTORY
This program was first introduced in Mac OS X 10.5 "Leopard". It was inspired by xgridctl(8).
BUGS
pcastctl(8) uses kill -TERM to allow the daemons a chance to die gracefully; there is currently no way to force a kill -KILL.
Bug reports can be sent to bugreport.apple.com
Feedback can be sent to podcastproducer@apple.com
Mac OS September 29, 2004 Mac OS