IMN restrospect -
If a process has the file open, it will continue to exists and grow even if you delete it.
So next time, DO NOT DELETE the file, truncate it. That is what the example code does above. This solves the disc full problem. And it allows you to truncate the file again and again. Actually I would stop the process, and do something about having it write to /dev/null since you do not care about the file contents.
It also speaks to the idea of telling us what your problem is, instead of telling us how you wanted to solve it.
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... (1 Reply)
Hi
I was working on a shell script with randomly shows a page of text from a randomly selected topic .As soon as the page is displayed it callers a timer script which keeps on running indefinitely until the timer script is killed by the user.
This is where I have the problem,if I press... (2 Replies)
Hi all , i know i ask a lot of question but these are really hard to solve and important question. I send two scripts:
expect.sh:
#!/usr/local/bin/expect
spawn ssh root@172.30.64.163
expect "login:"
send "root\n"
expect "password:"
send "root\n^M"
interact
and
son.sh:
... (2 Replies)
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)
Hi. !
When I use the 'NOHUP' along with the '&', the process will be running in the background. Even when I attempt to close (Meaning 'EXIT') the session (say PUTTY in this case), it wont exit unless the process is completed.
But, say when I forcefully terminate the session (SHUT DOWN the... (2 Replies)
Hi,
How to release file description area from specified process.
Problem is that process started - open one file ( ~2GB ) - file has been removed - process still shown that file is used by process and can't release space on filesystem.
It is not allowable to kill process !!!
Regs,... (3 Replies)
is it possible to duplicate file descriptors(opened by a different process) with the help of dup or dup2. the two process do not share parent child relationship as well. (2 Replies)
Hi Folks -
I am building a process to kill a list of services. Sometimes, there's a service that hangs therefore I need to add an additionla peice of code to kill all instances of a service if it exists.
Here is that portion of code:
echo... (10 Replies)
Discussion started by: SIMMS7400
10 Replies
LEARN ABOUT MOJAVE
ftruncate
TRUNCATE(2) BSD System Calls Manual TRUNCATE(2)NAME
ftruncate, truncate -- truncate or extend a file to a specified length
SYNOPSIS
#include <unistd.h>
int
ftruncate(int fildes, off_t length);
int
truncate(const char *path, off_t length);
DESCRIPTION
ftruncate() and truncate() cause the file named by path, or referenced by fildes, to be truncated (or extended) to length bytes in size. If
the file size exceeds length, any extra data is discarded. If the file size is smaller than length, the file is extended and filled with
zeros to the indicated length. The ftruncate() form requires the file to be open for writing.
Note: ftruncate() and truncate() do not modify the current file offset for any open file descriptions associated with the file.
RETURN VALUES
A value of 0 is returned if the call succeeds. If the call fails a -1 is returned, and the global variable errno specifies the error.
ERRORS
The ftruncate() system call will fail if:
[EBADF] fildes is not a valid descriptor open for writing.
[EFBIG] The file is a regular file and length is greater than the offset maximum established in the open file description associ-
ated with fildes.
[EINVAL] fildes references a socket, not a file.
[EINVAL] fildes is not open for writing.
[EROFS] The named file resides on a read-only file system.
The truncate() system call will fail if:
[EACCES] Search permission is denied for a component of the path prefix.
[EACCES] The named file is not writable by the user.
[EFAULT] Path points outside the process's allocated address space.
[EISDIR] The named file is a directory.
[ELOOP] Too many symbolic links are encountered in translating the pathname. This is taken to be indicative of a looping symbolic
link.
[ENAMETOOLONG] A component of a pathname exceeds {NAME_MAX} characters, or an entire path name exceeds {PATH_MAX} characters.
[ENOENT] The named file does not exist.
[ENOTDIR] A component of the path prefix is not a directory.
[EROFS] The named file resides on a read-only file system.
[ETXTBSY] The file is a pure procedure (shared text) file that is being executed.
The ftruncate() and truncate() system calls will fail if:
[EFBIG] The length argument was greater than the maximum file size.
[EINTR] A signal is caught during execution.
[EINVAL] The length argument is less than 0.
[EIO] An I/O error occurred while reading from or writing to a file system.
SEE ALSO open(2)BUGS
These calls should be generalized to allow ranges of bytes in a file to be discarded.
Use of truncate() to extend a file is not portable.
HISTORY
The truncate() and ftruncate() function calls appeared in 4.2BSD.
4.2 Berkeley Distribution June 4, 1993 4.2 Berkeley Distribution