home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-3.iso / Tools / hack / TimeShift.README < prev    next >
Encoding:
Text File  |  1996-04-17  |  4.8 KB  |  105 lines

  1. A number of people have complained on the net about how much of a
  2. pain it is to keep resetting the date and time when alternately
  3. booting between NS and toy operating systems.
  4.  
  5. My preferred advice (only partly facetious) is:
  6.     "Then stop booting the toy OS."
  7.  
  8. I realize that this is not a workable solution for some people.
  9. So I'm providing this software to ease the pain of those who 
  10. chronically suffer from Windows.
  11.  
  12. This software works by intercepting calls to reboot and halt.  When
  13. /usr/etc/reboot or /usr/etc/halt are executed, a copy of timeshift
  14. is run instead.  The fake reboot and halt code first determines
  15. how many seconds separate the local timezone from GMT, then the
  16. system clock is adjusted by adding that many seconds to the clock.
  17. Upon making this time adjustment, the file (/usr/etc/shifted.time)
  18. is created so that this change can be undone the next time that NS 
  19. is booted.  After setting the time and creating the stamp file, the 
  20. real copy of reboot or halt is called to bring down the system as 
  21. requested.
  22.  
  23. Upon bootup (in either /etc/rc.local or /etc/rc) the script
  24. '/etc/rc.timeshift' is run.  This script checks for '/usr/etc/shifted.time'
  25. and if present, runs '/usr/etc/timeshift' to reverse the process.
  26. timeshift reads the stamp file, and adjusts the system clock by
  27. subtracting the stored time difference from the clock.  It then
  28. removes the stamp file.
  29.  
  30. Because /usr/etc/reboot, and /usr/etc/halt are such critical OS
  31. components, care has been taken to prevent timeshift from modifying
  32. anything if the real halt or reboot will not be syncing the filesystem
  33. on the way down.  When reboot -q, reboot -n, or halt -n are called
  34. the real versions are executed directly without modifying the clock.
  35. If this were not done, then rebooting the system from single user
  36. mode after fixing corrupt file systems would not be possible.
  37.  
  38. An installer package in binary form is provided.  During installation
  39. it will offer to add a login hook to /etc/rc.  If you select 
  40. 'Do Nothing' in the attentioan panel, then no change will be made,
  41. and you will have to manually add an hook to call /etc/rc.timeshift
  42. to either rc or rc.local.  Though timeshift will work from either
  43. location, the call from rc is recommeded.  When placed in the rc
  44. file the time will be shifted before syslogd and other system
  45. daemons are run.  This means that messages they write to
  46. /usr/adm/messages will show the correct time.  If called from
  47. rc.local, most daemons will be started while the clock is still in
  48. DOS time.
  49.  
  50. I have included the source code to the timeshift executable as part
  51. of the distribution.  I do not recommend making changes to this
  52. code.  I provided the source, because I believe that people should
  53. have access to any critical pieces of code that are installed and
  54. run as root on their systems.  I, myself, would be leery of this
  55. package if sources were not made available.  So, if you modify the
  56. source and you encounter problems with it, then you are on your
  57. own.  I will respond to feedback and suggestions for improving the
  58. package.  I will not support modified copies of this code!
  59.  
  60. If something heinous happens to your system and the timeshift 
  61. executable becomes corrupted, then reboot and halt will no longer
  62. operate normally.
  63. In this situation you should do the following:  
  64. 1.      boot into single user mode.  
  65. 2.      fsck -p to preen your drives.  
  66. 3.    cd /usr/etc 
  67. 4.      rm timeshift 
  68. 5.      mv halt.real halt
  69. 6.    mv reboot.real reboot
  70.  
  71. The changes to your rc.timeshift will only try to run at boot when
  72. /usr/etc/shifted.time and /usr/etc/timeshift both exist.  You can
  73. then reinstall timeshift from the installer package.
  74.  
  75. Deleting timshift via the Installer.app will remove timeshift, and
  76. rename halt.real and reboot.real.  It will also remove /etc/rc.timeshift.
  77. It will not modify /etc/rc or /etc/rc.local but since that code
  78. will now no longer try to run rc.timeshift you will still be able
  79. to boot normally until you decide to remove
  80.  
  81. timeshift will reset the clock for all normal reboot and shutdown
  82. vectors:
  83.     shutdown called from the shell.
  84.     halt or reboot called from the shell.
  85.     'Turn it off' button in the Power off panel.
  86.     'Power off' button in the logout panel.
  87.     'Reboot' or 'Power' buttons on the login panel.
  88.  
  89. Note that the time will not be shifted after a crash, or by any
  90. other ungraceful shutdown vecter (like restart via the Cmd-NumLock
  91. monitor).  This means that if you boot MS/Windows before rebooting
  92. to repair filesystems, etc, then time will be off in DOS.
  93.  
  94. This code is provided as shareware but is not in the public domain.
  95. It can be distributed, unmodified, in both source and binary form.
  96.  
  97. If you find this software useful, and use it, please send a payment
  98. of $10.  My current address is:
  99.     James E. Quick
  100.     13 Nonantum Place #2
  101.     Newton, MA 02158
  102.  
  103. If you are on the net, you can always verify my current address
  104. via 'whois quick.com'
  105.