Sponsored Content
Top Forums UNIX for Advanced & Expert Users Close file descriptor without terminating process Post 302669173 by jim mcnamara on Tuesday 10th of July 2012 01:53:40 PM
Old 07-10-2012
IMN restrospect -
Code:
cd /directory/to/bigfile/
> my bigfile.dat

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.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

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... (1 Reply)
Discussion started by: kunalashar
1 Replies

2. UNIX for Dummies Questions & Answers

File Descriptor Help

What is a file descriptor in Unix?? How to find a file descriptor of a file in Unix?? Does it have anything to do with the Inode numbers?? (3 Replies)
Discussion started by: rahulrathod
3 Replies

3. UNIX for Dummies Questions & Answers

Terminating child script with terminating the parent script

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)
Discussion started by: mervin2006
2 Replies

4. Shell Programming and Scripting

How can i terminating expect script without terminating SSH connection.

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)
Discussion started by: fozay
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. Shell Programming and Scripting

Usage of NOHUP - How to keep the child process running even if I close the Server connection

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)
Discussion started by: WinBarani
2 Replies

7. 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

8. AIX

AIX6.1 Remove file descriptor from specified process

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)
Discussion started by: KrzysiekPi
3 Replies

9. UNIX for Advanced & Expert Users

Dup2 - for file descriptor opened by a different process

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)
Discussion started by: replytoshishir
2 Replies

10. Shell Programming and Scripting

Terminating a process - is this code best practice?

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
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
All times are GMT -4. The time now is 10:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy