Loading ...
Sorry, an error occurred while loading the content.

Re: inode change when saving changes to a file

Expand Messages
  • Tony Mechelynck
    ... See ... I agree with you that doctoring a logfile is contrary to the very purpose of the logfile itself. Some daemons will restart when sent a SIGHUP
    Message 1 of 2 , Apr 18, 2013
    • 0 Attachment
      On 19/04/13 00:31, Don Cragun wrote:
      > I'm new to this forum and hope I'm not missing basic etiquette rules here.
      >
      > There is a discussion going on in the UNIX and Linux Forums "UNIX for Dummies Questions & Answers" forum titled "Knowing when a different program modifies a file" (see http://www.unix.com/unix-dummies-questions-answers/221357-knowing-when-different-program-modifies-file.html for the full discussion) where it was pointed out that if someone edits a log file with vim while a daemon has the file open for writing all subsequent output written to the log file by the daemon will be lost until the deamon switches to a new log file (or is killed and restarted).
      >
      > I understand that renaming a temp file with the changes incorporated is an atomic operation reducing the amount of time that a large file would be in an inconsistent state. and that it widens (or opens) a window where a file could be "damaged" due to an anomalous event (e.g., power failure, lack of disk space, etc.). (But I assume that in these cases, vim's recover command could restore the data after the system is rebooted or space is made available.)
      >
      > I know that when there are multiple hard links to a file, the inode is not changed when vim saves the file updates. Given the above scenario, should vim ever change the inode?
      >
      > Clearly a sysadmin that edits a log file should be retrained or fired, and clearly the POSIX standards state that the results produced when two processes are writing to the same file without exchanging active handles produces undefined results; but the fact that a system daemon would continue writing to a file after vim has unlink()ed it and that all future diagnostics written by that daemon could be lost is scary.
      >
      > - Don
      >

      See
      :help 'backupcopy'
      :help FileChangedShell

      I agree with you that "doctoring" a logfile is contrary to the very
      purpose of the logfile itself.

      Some daemons will "restart" when sent a SIGHUP signal. I'm not sure of
      the details, which may vary from daemon to daemon.

      Best regards,
      Tony.
      --
      Never count your chickens before they rip your lips off

      --
      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php

      ---
      You received this message because you are subscribed to the Google Groups "vim_dev" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    Your message has been successfully submitted and would be delivered to recipients shortly.