09-26-2014
To expand on what RudiC (correctly) explained:
When a process (your syslog for example) writes to a file it has to open it first. To "open it" means issuing a system call fopen(). The OS gives back a "file handle" by which the process now can access the file (until it closes it, which means issuing another system call).
This file handle now identifies the file not by its name but by a more "personal" identification: the inode number. When you delete the file and create a new one with the same name in its place then exactly this has happened: a new file with the same name is in the place of the old file, but the new file and the old file are still distinct files and they have different inode numbers.
Think of it like this: some "John Smith" lives in an appartment. When he moves out and another guy, incidentally also named "John Smith", moves in, they are still not the same person, yes?
Therefore, until told otherwise, your process still writes into the old file, even if it is no longer visible because you deleted it. It even takes space on your harddisk until your process holds it open. Only when you stop the last process holding it open (more than one process could open a file simultaneously) it will be finally "unlinked" - the space it takes will be relinquished and its data be destroyed.
With sending a signal to the process you tell it to "start over": re-read its configuration files, open the necessary files anew, etc., similar to stopping and restarting it, but without the actual program stop and program start.
I hope this helps.
bakunin
9 More Discussions You Might Find Interesting
1. HP-UX
Hello,
I am New to Unix.
I am Using HP-UX 9000 Series for my Application.
I am Currently Facing an Issue that the error messages are being written in the syslog file instead of the Application Log File. The Codes for that Syslog.h is written in Pro*C.
I want to know how to Redirect these... (3 Replies)
Discussion started by: balasubramaniam
3 Replies
2. UNIX for Advanced & Expert Users
Hi,
we are trying to enable auditing for few oracle 9i database. and right now it writies into adump directory. As adump can be read/write by oracle user so could it be possible to write into syslog while oracle keeps writing to adump .
thanks in advance.
Pk (2 Replies)
Discussion started by: p4cldba
2 Replies
3. Shell Programming and Scripting
hello All,
I have the login name and pasword. I want to know how to use this info and open a file and write to it.
Ex: login: expr
pasword: xxxx
file: /expr/tmp.txt
I know how to use ftp (use Net::FTP) and upload files but I want to know how to write to a file.
Thanks, (4 Replies)
Discussion started by: rimser9
4 Replies
4. UNIX for Advanced & Expert Users
Hello Forumers!
Has anyone successfully implemented forwarding of syslog messages to a remote server which is listening on a port other than udp514?
Thanks! (3 Replies)
Discussion started by: bluescreen
3 Replies
5. Shell Programming and Scripting
I have several production servers and 1 offline server. Production server continuously generates new log files for my application. Depending on time of day new files may be generated every few seconds and at other times every few hours. I also have an offline server where I would like to pull log... (3 Replies)
Discussion started by: yoda9691
3 Replies
6. UNIX for Dummies Questions & Answers
Hi,
I created central syslog server, but it's not accepting the messages from remote. Not sure why I can't start the service with -r options? Please help.
# service syslog restart
Shutting down kernel logger:
Shutting down system logger: ... (1 Reply)
Discussion started by: samnyc
1 Replies
7. Linux
I found a script for automatically push tomcat logs to syslog server which is locate in same server. How do I change it to push logs to remote server?
log4j.rootLogger=INFO, WARN, console, file, SYSLOG
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.append=true... (2 Replies)
Discussion started by: heshandh
2 Replies
8. Shell Programming and Scripting
Hi guys,
So i am in server1 and i have to login to server 2, 3,4 and run some script there(logging script) and output its result. What i am doing is running the script in server2 and outputting it to a file in server 2 and then Scp'ing the file to server1. Similarly i am doing this for other... (5 Replies)
Discussion started by: srkmish
5 Replies
9. Shell Programming and Scripting
I have a script, which connecting to remote server and first checks, if the files are there by timestamp. If not I want the script exit without error. Below is a code
TARFILE=${NAME}.tar
TARGZFILE=${NAME}.tar.gz
ssh ${DESTSERVNAME} 'cd /export/home/iciprod/download/let/monthly;... (3 Replies)
Discussion started by: digioleg54
3 Replies
LEARN ABOUT HPUX
getdtablesize
getdtablesize(2) System Calls Manual getdtablesize(2)
NAME
getdtablesize() - get the size of the per-process file descriptor table
SYNOPSIS
DESCRIPTION
The function returns the maximum number of file descriptors that can currently be stored in a process' file descriptor table. This maximum
number is also known as the soft limit for open files, and can be adjusted up to the hard limit by calling The entries in the descriptor
table are numbered with small integers starting at 0 (zero).
The function returns the total number of file descriptors that a process can have open simultaneously. Each process is limited to a cur-
rent maximum (soft limit) and a fixed upper bound (hard limit) of open file descriptors. This limit is at least 32. The system-defined
limits are configurable. See the descriptions of the and kernel parameters in maxfiles_lim(5) and maxfiles(5), respectively, for informa-
tion about changing the system-defined, per-process limit on open file descriptors.
RETURN VALUES
The function returns the size of the descriptor table (soft limit), and is always successful.
SEE ALSO
close(2), getrlimit(2), open(2), select(2), setrlimit(2), sysconf(2), maxfiles(5), maxfiles_lim(5).
STANDARDS CONFORMANCE
getdtablesize(2)