Removed messy multi-lingual documents. Revised the URL and fixed typos.
This commit is contained in:
		@@ -1 +0,0 @@
 | 
			
		||||
依玛猫 <imacat@mail.imacat.idv.tw>
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
依瑪貓 <imacat@mail.imacat.idv.tw>
 | 
			
		||||
							
								
								
									
										8
									
								
								COPYING
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								COPYING
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
                    GNU GENERAL PUBLIC LICENSE
 | 
			
		||||
                       Version 3, 29 June 2007
 | 
			
		||||
 | 
			
		||||
 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 | 
			
		||||
 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 | 
			
		||||
 Everyone is permitted to copy and distribute verbatim copies
 | 
			
		||||
 of this license document, but changing it is not allowed.
 | 
			
		||||
 | 
			
		||||
@@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License
 | 
			
		||||
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
Also add information on how to contact you by electronic and paper mail.
 | 
			
		||||
 | 
			
		||||
@@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
 | 
			
		||||
  You should also get your employer (if you work as a programmer) or school,
 | 
			
		||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
 | 
			
		||||
For more information on this, and how to apply and follow the GNU GPL, see
 | 
			
		||||
<http://www.gnu.org/licenses/>.
 | 
			
		||||
<https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
  The GNU General Public License does not permit incorporating your program
 | 
			
		||||
into proprietary programs.  If your program is a subroutine library, you
 | 
			
		||||
may consider it more useful to permit linking proprietary applications with
 | 
			
		||||
the library.  If this is what you want to do, use the GNU Lesser General
 | 
			
		||||
Public License instead of this License.  But first, please read
 | 
			
		||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
 | 
			
		||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,6 +1,23 @@
 | 
			
		||||
vsntp change log
 | 
			
		||||
 | 
			
		||||
2013-11-13
 | 
			
		||||
2020-02-07
 | 
			
		||||
	 1. .gitignore Added that excludes generated files by automake and
 | 
			
		||||
	    autoconf.
 | 
			
		||||
	 2. .git: Re-initialized.
 | 
			
		||||
	 3. AUTHORS.zh-tw, INSTALL.zh-tw, NEWS.zh-tw, README.zh-tw, THANKS.zh-tw,
 | 
			
		||||
	    init.d/README.zh-tw, AUTHORS.zh-cn, INSTALL.zh-cn, NEWS.zh-cn,
 | 
			
		||||
	    README.zh-cn, THANKS.zh-cn, init.d/README.zh-cn: Removed messy
 | 
			
		||||
	    multi-lingual documents.
 | 
			
		||||
	 4. README, ChangeLog, doc/vsntp.8, doc/vsntp.texi, init.d/vsntp.debian,
 | 
			
		||||
	    init.d/vsntp.redhat: Revised the URL and typos.
 | 
			
		||||
	 5. NEWS, init.d/README: Fixed typos.
 | 
			
		||||
	 6. vsntp.c, Makefile.am, doc/Makefile.am, init.d/Makefile.am, COPYING:
 | 
			
		||||
	    Updated the URL.
 | 
			
		||||
 | 
			
		||||
2020-02-01
 | 
			
		||||
	 vsntp is hosted on GitHub now.
 | 
			
		||||
 | 
			
		||||
2013-11-13	version 2.1.0 (not released)
 | 
			
		||||
	Does not work on x86_64 yet.  Don't know whether it still works on i386.
 | 
			
		||||
	I don't have i386 anymore.
 | 
			
		||||
	 1. vsntp.c: Removed the weird method to calculate the next time line
 | 
			
		||||
@@ -10,10 +27,10 @@ vsntp change log
 | 
			
		||||
	    will overload the server and create DDoS.  Thanks to the reminder of
 | 
			
		||||
	    Steven Shen <fbishen@gmail.com>.
 | 
			
		||||
	 2. AUTHORS.zh-tw, INSTALL.zh-tw, NEWS.zh-tw, README.zh-tw, THANKS.zh-tw,
 | 
			
		||||
	    init.d/README.zh-tw: Converted from Big5 to UTF-8.  I'm not woking
 | 
			
		||||
	    init.d/README.zh-tw: Converted from Big5 to UTF-8.  I'm not working
 | 
			
		||||
	    on Windows anymore.  Big5 cause problem with gedit.
 | 
			
		||||
	 3. AUTHORS.zh-cn, INSTALL.zh-cn, NEWS.zh-cn, README.zh-cn, THANKS.zh-cn,
 | 
			
		||||
	    init.d/README.zh-cn: Converted from GB2312 to UTF-8.  I'm not woking
 | 
			
		||||
	    init.d/README.zh-cn: Converted from GB2312 to UTF-8.  I'm not working
 | 
			
		||||
	    on Windows anymore.  GB2312 cause problem with gedit.
 | 
			
		||||
	 4. configure: Updated with GNU Autoconf 2.69.
 | 
			
		||||
 | 
			
		||||
@@ -24,17 +41,17 @@ vsntp change log
 | 
			
		||||
	 4. Removed Traditional Chinese comments.
 | 
			
		||||
 | 
			
		||||
2004-03-29	version 2.0.0
 | 
			
		||||
	 1. vsntp.c: The syhchronization scheduler has been rewritten to
 | 
			
		||||
	 1. vsntp.c: The synchronization scheduler has been rewritten to
 | 
			
		||||
	    allow alternative schedulers, in order to work with the problem
 | 
			
		||||
	    reported by Jean-Alain Le Borgne <jalb@pobox.com> 2007-03-26,
 | 
			
		||||
	    that sleep() may not return after MS Virtual PC 2007 was suspended
 | 
			
		||||
	    for a while.
 | 
			
		||||
	 2. vsntp.c: An alternative schedular using alarm() was added in
 | 
			
		||||
	 2. vsntp.c: An alternative scheduler using alarm() was added in
 | 
			
		||||
	    addition to sleep(), based on the contribution by Jean-Alain.
 | 
			
		||||
	 3. vsntp.c: New subroutine setsigalrm() was added to set the SIGALRM
 | 
			
		||||
	    signal handler.
 | 
			
		||||
	 4. vsntp.c: New subroutine alarm_wakeup() was added as the alarm()
 | 
			
		||||
	    schedular.
 | 
			
		||||
	    scheduler.
 | 
			
		||||
	 5. vsntp.c: Two new constants SCHEDULER_SLEEP and SCHEDULER_ALARM were
 | 
			
		||||
	    added as the scheduler choices of the user.
 | 
			
		||||
	 6. vsntp.c: Two new switches -a/--alarm and -s/--sleep were added for
 | 
			
		||||
@@ -53,7 +70,7 @@ vsntp change log
 | 
			
		||||
	12. vsntp.c: Re-formatting error messages and warnings according to
 | 
			
		||||
	    the GNU Coding Standards, as:
 | 
			
		||||
	      source-file-name:lineno: message
 | 
			
		||||
            Refer to: http://www.gnu.org/prep/standards/html_node/Errors.html
 | 
			
		||||
            Refer to: https://www.gnu.org/prep/standards/html_node/Errors.html
 | 
			
		||||
	13. vsntp.c: Added logging before connect(), send() and recv() at
 | 
			
		||||
	    log level LOG_DEBUG in order to know the current progress when
 | 
			
		||||
	    debugging network problems.
 | 
			
		||||
@@ -68,9 +85,9 @@ vsntp change log
 | 
			
		||||
	17. vsntp.c: English comment fix.  "... and handle errors" was updated
 | 
			
		||||
	    as "... and handle its error."
 | 
			
		||||
	18. configure.ac: Added AC_TYPE_SSIZE_T, and added "alarm()" in
 | 
			
		||||
	    AC_CHECK_FUNCS, acccording to the suggestion by automake 1.9.6.
 | 
			
		||||
	19. configure.in and aclocal.m4: Regenrated using automake 1.9.6.
 | 
			
		||||
	20. configure: Regenrated using autoconf 2.61.
 | 
			
		||||
	    AC_CHECK_FUNCS, according to the suggestion by automake 1.9.6.
 | 
			
		||||
	19. configure.in and aclocal.m4: Regenerated using automake 1.9.6.
 | 
			
		||||
	20. configure: Regenerated using autoconf 2.61.
 | 
			
		||||
	21. vsntp.c: Added conditional #ifdef, so that if alarm() is not
 | 
			
		||||
	    supported on the target platform the alarm() scheduler will not
 | 
			
		||||
	    be compiled.
 | 
			
		||||
@@ -84,7 +101,7 @@ vsntp change log
 | 
			
		||||
	25. vsntp.c: Fixed the basic profile in the beginning comment, from
 | 
			
		||||
	    synctime.c to vsntp.c.  That was the first name of vsntp.  It was
 | 
			
		||||
	    renamed for years.
 | 
			
		||||
	26. vsntp.8: Fixed the BUGS chapter, replacing the originall text with
 | 
			
		||||
	26. vsntp.8: Fixed the BUGS chapter, replacing the original text with
 | 
			
		||||
	    the SourceForge users' mailing list information.
 | 
			
		||||
	27. README, vsntp.8 and vsntp.texi: Added notes about the scheduler
 | 
			
		||||
	    issue.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,81 +0,0 @@
 | 
			
		||||
vsntp 安装执行说明
 | 
			
		||||
 | 
			
		||||
一、编译安装程序
 | 
			
		||||
 | 
			
		||||
    vsntp 使用标准的 GNU autoconf 来安装编译:
 | 
			
		||||
 | 
			
		||||
     1. 下载 vsntp 并解压缩:
 | 
			
		||||
 | 
			
		||||
      % tar xzf vsntp-x.x.x.tar.gz
 | 
			
		||||
 | 
			
		||||
     2. 进入 vsntp 的子目录:
 | 
			
		||||
 | 
			
		||||
      % cd vsntp-x.x.x
 | 
			
		||||
 | 
			
		||||
     3. 执行 ./configure 设定:
 | 
			
		||||
 | 
			
		||||
      % ./configure
 | 
			
		||||
 | 
			
		||||
     4. 以 make 编译:
 | 
			
		||||
 | 
			
		||||
      % make
 | 
			
		||||
 | 
			
		||||
        编译出来的档案为 vsntp 。
 | 
			
		||||
 | 
			
		||||
     5. 要安装程式,你可能要先  su 到 root ,用 root 的权限安装:
 | 
			
		||||
 | 
			
		||||
      % su
 | 
			
		||||
      Password:
 | 
			
		||||
      #
 | 
			
		||||
 | 
			
		||||
     6. 将 vsntp 档复制到适当的目录即可:
 | 
			
		||||
 | 
			
		||||
      # cp vsntp /usr/local/sbin
 | 
			
		||||
 | 
			
		||||
        或者,你也可以用自动安装:
 | 
			
		||||
 | 
			
		||||
      # make install
 | 
			
		||||
 | 
			
		||||
        或用 install-strip 清除档案里的除错符号,安装起来档案比较小:
 | 
			
		||||
 | 
			
		||||
      # make install-strip
 | 
			
		||||
 | 
			
		||||
        用上述方式安装时, vsntp 预设安装目录在 /usr/local/sbin 。
 | 
			
		||||
 | 
			
		||||
二、编译安装选项
 | 
			
		||||
 | 
			
		||||
    GNU autoconf 的 configure 提供下列的编译安装选项:
 | 
			
		||||
 | 
			
		||||
  --prefix=PREFIX	作业平台无关的档案装在 PREFIX 下 [/usr/local]
 | 
			
		||||
  --exec-prefix=EPREFIX	作业平台专用的档案装在 EPREFIX 下 [PREFIX]
 | 
			
		||||
 | 
			
		||||
  --bindir=DIR		一般使用者用的执行档 [EPREFIX/bin]
 | 
			
		||||
  --sbindir=DIR		系统管理者用的执行档 [EPREFIX/sbin]
 | 
			
		||||
  --libexecdir=DIR	程式内部引用的执行档 [EPREFIX/libexec]
 | 
			
		||||
  --datadir=DIR		与作业平台无关的唯读资料 [PREFIX/share]
 | 
			
		||||
  --sysconfdir=DIR	本系统专用的唯读资料 [PREFIX/etc]
 | 
			
		||||
  --sharedstatedir=DIR	与作业平台无关的异动资料 [PREFIX/com]
 | 
			
		||||
  --localstatedir=DIR	本系统专用的异动资料 [PREFIX/var]
 | 
			
		||||
  --libdir=DIR		目的码程式库 [EPREFIX/lib]
 | 
			
		||||
  --includedir=DIR	C 语言标头档 [PREFIX/include]
 | 
			
		||||
  --oldincludedir=DIR	非 gcc 用的 C 语言标头档 [/usr/include]
 | 
			
		||||
  --infodir=DIR		info 说明文件 [PREFIX/info]
 | 
			
		||||
  --mandir=DIR		man 说明文件 [PREFIX/man]
 | 
			
		||||
 | 
			
		||||
    完整的编译安装选项,请参阅 ./configure --help 的说明。
 | 
			
		||||
 | 
			
		||||
三、执行
 | 
			
		||||
 | 
			
		||||
    要有 root 权限才能执行 vsntp 。 vsntp 用 settimeofday() 对时,没
 | 
			
		||||
有 root 权限不能执行 settimeofday() 。
 | 
			
		||||
 | 
			
		||||
    要启动 vsntp ,加上对时用的 ntp server 即可:
 | 
			
		||||
 | 
			
		||||
      # vsntp my.ntp.server.com
 | 
			
		||||
 | 
			
		||||
    vsntp 会把 PID 存在 /var/run/vsntp.pid 。要结束程式,只要 kill 它
 | 
			
		||||
的 PID 即可:
 | 
			
		||||
 | 
			
		||||
      # kill `cat /var/run/vsntp.pid`
 | 
			
		||||
 | 
			
		||||
    你可以用 -p 选项,更改 PID 档的位置。
 | 
			
		||||
@@ -1,81 +0,0 @@
 | 
			
		||||
vsntp 安裝執行說明
 | 
			
		||||
 | 
			
		||||
一、編譯安裝程序
 | 
			
		||||
 | 
			
		||||
    vsntp 使用標準的 GNU autoconf 法編譯安裝:
 | 
			
		||||
 | 
			
		||||
     1. 下載 vsntp 並解壓縮:
 | 
			
		||||
 | 
			
		||||
      % tar xzf vsntp-x.x.x.tar.gz
 | 
			
		||||
 | 
			
		||||
     2. 進入 vsntp 的子目錄:
 | 
			
		||||
 | 
			
		||||
      % cd vsntp-x.x.x
 | 
			
		||||
 | 
			
		||||
     3. 執行 ./configure 設定:
 | 
			
		||||
 | 
			
		||||
      % ./configure
 | 
			
		||||
 | 
			
		||||
     4. 以 make 編譯:
 | 
			
		||||
 | 
			
		||||
      % make
 | 
			
		||||
 | 
			
		||||
        編譯出來的檔案為 vsntp 。
 | 
			
		||||
 | 
			
		||||
     5. 要安裝程式,妳可能要先  su 到 root ,用 root 的權限安裝:
 | 
			
		||||
 | 
			
		||||
      % su
 | 
			
		||||
      Password:
 | 
			
		||||
      #
 | 
			
		||||
 | 
			
		||||
     6. 將 vsntp 檔複製到適當的目錄即可:
 | 
			
		||||
 | 
			
		||||
      # cp vsntp /usr/local/sbin
 | 
			
		||||
 | 
			
		||||
        或者,妳也可以用自動安裝:
 | 
			
		||||
 | 
			
		||||
      # make install
 | 
			
		||||
 | 
			
		||||
        妳也可以邊裝邊清掉檔案裏的除錯符號,安裝起來檔案比較小:
 | 
			
		||||
 | 
			
		||||
      # make install-strip
 | 
			
		||||
 | 
			
		||||
        用上述方式安裝時, vsntp 預設安裝目錄在 /usr/local/sbin 。
 | 
			
		||||
 | 
			
		||||
二、編譯安裝選項
 | 
			
		||||
 | 
			
		||||
    GNU autoconf 的 configure 提供下列的編譯安裝選項:
 | 
			
		||||
 | 
			
		||||
  --prefix=PREFIX	作業平台無關的檔案裝在 PREFIX 下 [/usr/local]
 | 
			
		||||
  --exec-prefix=EPREFIX	作業平台專用的檔案裝在 EPREFIX 下 [PREFIX]
 | 
			
		||||
 | 
			
		||||
  --bindir=DIR		一般使用者用的執行檔 [EPREFIX/bin]
 | 
			
		||||
  --sbindir=DIR		系統管理者用的執行檔 [EPREFIX/sbin]
 | 
			
		||||
  --libexecdir=DIR	程式內部引用的執行檔 [EPREFIX/libexec]
 | 
			
		||||
  --datadir=DIR		與作業平台無關的唯讀資料 [PREFIX/share]
 | 
			
		||||
  --sysconfdir=DIR	本系統專用的唯讀資料 [PREFIX/etc]
 | 
			
		||||
  --sharedstatedir=DIR	與作業平台無關的異動資料 [PREFIX/com]
 | 
			
		||||
  --localstatedir=DIR	本系統專用的異動資料 [PREFIX/var]
 | 
			
		||||
  --libdir=DIR		目的碼程式庫 [EPREFIX/lib]
 | 
			
		||||
  --includedir=DIR	C 語言標頭檔 [PREFIX/include]
 | 
			
		||||
  --oldincludedir=DIR	非 gcc 用的 C 語言標頭檔 [/usr/include]
 | 
			
		||||
  --infodir=DIR		info 說明文件 [PREFIX/info]
 | 
			
		||||
  --mandir=DIR		man 說明文件 [PREFIX/man]
 | 
			
		||||
 | 
			
		||||
    完整的編譯安裝選項,請參閱 ./configure --help 的說明。
 | 
			
		||||
 | 
			
		||||
三、執行
 | 
			
		||||
 | 
			
		||||
    要有 root 權限才能執行 vsntp 。 vsntp 用 settimeofday() 對時,沒
 | 
			
		||||
有 root 權限不能執行 settimeofday() 。
 | 
			
		||||
 | 
			
		||||
    要啟動 vsntp ,加上對時用的 NTP server 即可:
 | 
			
		||||
 | 
			
		||||
      # vsntp my.ntp.server.com
 | 
			
		||||
 | 
			
		||||
    vsntp 會把 PID 存在 /var/run/vsntp.pid 。要結束程式,只要 kill 它
 | 
			
		||||
的 PID 即可:
 | 
			
		||||
 | 
			
		||||
      # kill `cat /var/run/vsntp.pid`
 | 
			
		||||
 | 
			
		||||
    妳可以用 -p 選項,更改 PID 檔的位置。
 | 
			
		||||
@@ -14,12 +14,11 @@
 | 
			
		||||
## GNU General Public License for more details.
 | 
			
		||||
## 
 | 
			
		||||
## You should have received a copy of the GNU General Public License
 | 
			
		||||
## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
## along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
AUTOMAKE_OPTIONS =	gnits
 | 
			
		||||
 | 
			
		||||
sbin_PROGRAMS =		vsntp
 | 
			
		||||
vsntp_SOURCES =		vsntp.c
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST =		README.* INSTALL.* NEWS.* AUTHORS.* THANKS.*
 | 
			
		||||
SUBDIRS =		doc init.d
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,5 +1,25 @@
 | 
			
		||||
vsntp NEWS
 | 
			
		||||
 | 
			
		||||
2021-02-07
 | 
			
		||||
	 1. AUTHORS.zh-tw, INSTALL.zh-tw, NEWS.zh-tw, README.zh-tw, THANKS.zh-tw,
 | 
			
		||||
	    init.d/README.zh-tw, AUTHORS.zh-cn, INSTALL.zh-cn, NEWS.zh-cn,
 | 
			
		||||
	    README.zh-cn, THANKS.zh-cn, init.d/README.zh-cn: Removed messy
 | 
			
		||||
	    multi-lingual documents.
 | 
			
		||||
	 2. README: Revised the URL and typos.
 | 
			
		||||
 | 
			
		||||
2013-11-13	version 2.1.0 (not released)
 | 
			
		||||
	 1. vsntp.c: Removed the weird method to calculate the next time line
 | 
			
		||||
	    for synchronization.  It was my bad taste to synchronize at the
 | 
			
		||||
	    the time of multiples of interval.  When many clients are
 | 
			
		||||
	    synchronized to a same server, synchronizing them at a same time
 | 
			
		||||
	    will overload the server and create DDoS.  Thanks to the reminder of
 | 
			
		||||
	    Steven Shen <fbishen@gmail.com>.
 | 
			
		||||
	 2. AUTHORS.zh-tw, INSTALL.zh-tw, NEWS.zh-tw, README.zh-tw, THANKS.zh-tw,
 | 
			
		||||
	    init.d/README.zh-tw, AUTHORS.zh-cn, INSTALL.zh-cn, NEWS.zh-cn,
 | 
			
		||||
	    README.zh-cn, THANKS.zh-cn, init.d/README.zh-cn: Converted from Big5
 | 
			
		||||
	    and GB2312 to UTF-8.
 | 
			
		||||
	 3. License updated to GPLv3.
 | 
			
		||||
 | 
			
		||||
2007-03-29	version 2.0.0
 | 
			
		||||
	 1. Added alarm() in addition to sleep() as an alternative
 | 
			
		||||
	    synchronization scheduler, in order to fix a problem that vsntp
 | 
			
		||||
@@ -7,7 +27,7 @@ vsntp NEWS
 | 
			
		||||
	    for a while, as reported and suggested by Jean-Alain Le Borgne
 | 
			
		||||
	    <jalb@pobox.com> 2007-03-26.  The codes are based on
 | 
			
		||||
	    Jean-Alain's contribution.  Thank you.  Two new switches "-a" and
 | 
			
		||||
	    "-s" were added for for setting the schedular.  Currently the
 | 
			
		||||
	    "-s" were added for for setting the scheduler.  Currently the
 | 
			
		||||
	    default is -s (sleep()).  If you find vsntp stops synchronization
 | 
			
		||||
	    after running for some time, that the sleep() is not functioning
 | 
			
		||||
	    normally on your system, you may try to switch to alarm() using
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								NEWS.zh-cn
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								NEWS.zh-cn
									
									
									
									
									
								
							@@ -1,25 +0,0 @@
 | 
			
		||||
vsntp 新版功能:
 | 
			
		||||
 | 
			
		||||
2007-03-29	2.0.0 版
 | 
			
		||||
	 1. 加上 alarm() ,作为 sleep() 之外的另一种计时器,以解决
 | 
			
		||||
	    Jean-Alain Le Borgne <jalb@pobox.com> 於 2007-03-26 所回报与建议
 | 
			
		||||
	    的, MS Virtual PC 2007 在暂停一段时间后复原, sleep() 定时会醒不
 | 
			
		||||
	    来的问题。程式由 Jean-Alain 贡献的修正码改写而成,在此致谢。新增两
 | 
			
		||||
	    个选项 -a 与 -s ,以设定要用的计时器。目前预设为 -s ,使用 sleep()
 | 
			
		||||
	    呼叫定时。若你 vsntp 校时一段时间后就不动了,系统的 sleep() 呼叫有
 | 
			
		||||
	    问题时,可以加上 -a 选项,改用 alarm() 定时。
 | 
			
		||||
	 2. 加上更多侦错的 syslog 记录讯息,大多记录於 LOG_DEBUG 层级。
 | 
			
		||||
	 3. 在 init.d 目录下,提供两个 SysV 的启动程式,以便大家使用。请查阅
 | 
			
		||||
	    init.d 目录下 README 档案的说明。
 | 
			
		||||
 | 
			
		||||
2004-01-14	1.1.1 版
 | 
			
		||||
	修订说明文件。
 | 
			
		||||
	 1. 修订参考资料。
 | 
			
		||||
 | 
			
		||||
2004-01-12	1.1.0 版
 | 
			
		||||
	正式公开发行。
 | 
			
		||||
	 1. 加上 -i 与 -p 选项。
 | 
			
		||||
	 2. 加上说明文件。
 | 
			
		||||
 | 
			
		||||
2003-12-24	1.0.0 版
 | 
			
		||||
	第一版。
 | 
			
		||||
							
								
								
									
										25
									
								
								NEWS.zh-tw
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								NEWS.zh-tw
									
									
									
									
									
								
							@@ -1,25 +0,0 @@
 | 
			
		||||
vsntp 新版功能:
 | 
			
		||||
 | 
			
		||||
2007-03-29	2.0.0 版
 | 
			
		||||
	 1. 加上 alarm() ,作為 sleep() 之外的另一種計時器,以解決
 | 
			
		||||
	    Jean-Alain Le Borgne <jalb@pobox.com> 於 2007-03-26 所回報與建議
 | 
			
		||||
	    的, MS Virtual PC 2007 在暫停一段時間後復原, sleep() 定時會醒不
 | 
			
		||||
	    來的問題。程式由 Jean-Alain 貢獻的修正碼改寫而成,在此致謝。新增兩
 | 
			
		||||
	    個選項 -a 與 -s ,以設定要用的計時器。目前預設為 -s ,使用 sleep()
 | 
			
		||||
	    呼叫定時。若妳 vsntp 校時一段時間後就不動了,系統的 sleep() 呼叫有
 | 
			
		||||
	    問題時,可以加上 -a 選項,改用 alarm() 定時。
 | 
			
		||||
	 2. 加上更多偵錯的 syslog 記錄訊息,大多記錄於 LOG_DEBUG 層級。
 | 
			
		||||
	 3. 在 init.d 目錄下,提供兩個 SysV 的啟動程式,以便大家使用。詳情請查
 | 
			
		||||
	    閱 init.d 目錄下 README 檔案的說明。
 | 
			
		||||
 | 
			
		||||
2004-01-14	1.1.1 版
 | 
			
		||||
	修訂說明文件。
 | 
			
		||||
	 1. 修訂參考資料。
 | 
			
		||||
 | 
			
		||||
2004-01-12	1.1.0 版
 | 
			
		||||
	正式公開發行。
 | 
			
		||||
	 1. 加上 -i 與 -p 選項。
 | 
			
		||||
	 2. 加上說明文件。
 | 
			
		||||
 | 
			
		||||
2003-12-24	1.0.0 版
 | 
			
		||||
	第一版。
 | 
			
		||||
							
								
								
									
										18
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README
									
									
									
									
									
								
							@@ -6,19 +6,17 @@ Obtaining the Newest Information
 | 
			
		||||
 | 
			
		||||
    vsntp's official website is at...
 | 
			
		||||
 | 
			
		||||
      SourceForge's home site: http://vsntp.sourceforge.net/
 | 
			
		||||
      SourceForge's project page: https://sourceforge.net/projects/vsntp/
 | 
			
		||||
      Tavern IMACAT's page: http://www.imacat.idv.tw/tech/vsntp.html
 | 
			
		||||
      vsntp project on GitHub: https://github.com/imacat/vsntp
 | 
			
		||||
      vsntp project on SourceForge: https://sf.net/p/vsntp
 | 
			
		||||
 | 
			
		||||
    You can always download the newest version of vsntp from...
 | 
			
		||||
 | 
			
		||||
      SourceForge: https://sourceforge.net/project/showfiles.php?group_id=99098
 | 
			
		||||
      Tavern IMACAT's FTP: ftp://ftp.imacat.idv.tw/pub/vsntp/
 | 
			
		||||
      vsntp download on SourceForge: https://sourceforge.net/projects/vsntp/files
 | 
			
		||||
      Tavern IMACAT's FTP directory: https://ftp.imacat.idv.tw/pub/vsntp/
 | 
			
		||||
 | 
			
		||||
    imacat's PGP public key is at...
 | 
			
		||||
 | 
			
		||||
      SourceForge: http://vsntp.sourceforge.net/pgpkey.asc
 | 
			
		||||
      Tavern IMACAT's: http://www.imacat.idv.tw/me/pgpkey.asc
 | 
			
		||||
      Tavern IMACAT's: https://www.imacat.idv.tw/me/pgpkey.asc
 | 
			
		||||
 | 
			
		||||
Introduction:
 | 
			
		||||
 | 
			
		||||
@@ -37,7 +35,7 @@ With smooth run it goes 4 seconds ahead per minute, which is nearly
 | 
			
		||||
eyes.
 | 
			
		||||
 | 
			
		||||
    David L. Mills' ntp does not work here.  It uses a method that
 | 
			
		||||
learns the clock frequency drift first, and adjust the kerenl clock
 | 
			
		||||
learns the clock frequency drift first, and adjust the kernel clock
 | 
			
		||||
with adjtimex() so that time adjustment goes smoothly, from the point
 | 
			
		||||
of view of system and applications.  This assumes an existing fix-
 | 
			
		||||
speed system clock.  But this is not the case of Virtual PC.  The
 | 
			
		||||
@@ -80,8 +78,8 @@ LOG_DEBUG with facility LOG_DAEMON.  You may turn it on in your
 | 
			
		||||
 | 
			
		||||
and check the /var/log/debug file for the debugging message.  Remember
 | 
			
		||||
to remove this afterwards, for the amount of the debugging messages
 | 
			
		||||
may be huge and may use up your harddisk in a very short time.  To the
 | 
			
		||||
least it may slow down your system for frequent harddisk I/O.
 | 
			
		||||
may be huge and may use up your hard disk in a very short time.  To the
 | 
			
		||||
least it may slow down your system for frequent hard disk I/O.
 | 
			
		||||
 | 
			
		||||
    vsntp was originally written for GNU/Linux.  It uses POSIX
 | 
			
		||||
compatible system calls.  It should work on any POSIX compatible
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										82
									
								
								README.zh-cn
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								README.zh-cn
									
									
									
									
									
								
							@@ -1,82 +0,0 @@
 | 
			
		||||
vsntp 读我说明
 | 
			
		||||
 | 
			
		||||
    请参阅 INSTALL 档案,以取得安装执行的相关说明。
 | 
			
		||||
 | 
			
		||||
    想知道 vsntp 的最新消息,下载最新版本,请参阅:
 | 
			
		||||
 | 
			
		||||
      http://vsntp.sourceforge.net/
 | 
			
		||||
      http://sourceforge.net/projects/vsntp
 | 
			
		||||
      http://www.imacat.idv.tw/tech/vsntp.html
 | 
			
		||||
      ftp://ftp.imacat.idv.tw/pub/vsntp/
 | 
			
		||||
 | 
			
		||||
    作者的 PGP Public Key 可在下列网址下载:
 | 
			
		||||
 | 
			
		||||
      http://www.imacat.idv.tw/me/pgpkey.txt
 | 
			
		||||
 | 
			
		||||
简介:
 | 
			
		||||
 | 
			
		||||
    vsntp 是 SNTP 客户端服务程式,专为时间不正常的系统设计。 vsntp
 | 
			
		||||
的意思是 SNTP for Virtual PC ,原先是我为了在 Connectix Virtual PC
 | 
			
		||||
上跑 GNU/Linux 系统而写。 vsntp 依 RFC 1769 SNTP 标准,连线到 SNTP 伺
 | 
			
		||||
服器上的 UDP 埠 123 以校时。
 | 
			
		||||
 | 
			
		||||
    若没有装 Virtual PC Additions , Virtual PC 的时间很乱。 Virtual
 | 
			
		||||
PC 的 RTC ( Real Time Clock, 或称 CMOS 时钟、硬体时钟)是用软体模拟
 | 
			
		||||
出来的,往往根本没有在跑。 GNU/Linux 核心勉强维持一个大概的时间。正常
 | 
			
		||||
情况下,平均一分钟会快四秒,一天快一个半小时。这实在是太夸张了,用眼
 | 
			
		||||
睛都分辨得出时钟速度有问题。
 | 
			
		||||
 | 
			
		||||
    David L. Mills 的 ntp 校时伺服器在此完全失灵。 ntp 先测出系统时间
 | 
			
		||||
速度偏移,用 adjtimex() 来调整系统时钟速度,用这个方法渐近式调整,系
 | 
			
		||||
统本身和相关应用程式比较不会出问题。这个方法有一个前提:时间速度本身
 | 
			
		||||
恒定不变。可是 Virtual PC 不讲这一套。 Virtual PC 的时间纯粹是软体模
 | 
			
		||||
拟出来的,受主电脑负荷与其它因素影响,时快时慢。没有固定的时间速度,
 | 
			
		||||
也就没有时间速度偏移值。怎么测都是枉然。
 | 
			
		||||
 | 
			
		||||
    David L. Mills 的 ntp 程式里,附了一 sntp 客户端程式,可以放在
 | 
			
		||||
crontab 里定期对时,对时完结束程式。问题是, crontab 最小单位为分,
 | 
			
		||||
顶多一分钟跑一次,可是 Virtual PC 的时间一分钟慢四秒。一分钟退回四秒
 | 
			
		||||
,大多数应用程式都受不了。一分钟跑一次,对系统的负荷也很大。
 | 
			
		||||
 | 
			
		||||
    vsntp 是为此而写的。它以 daemon 来执行,以免每次对时都对系统造成
 | 
			
		||||
严重负荷。它用 settimeofday() 来调整时间,校时频率可任意设定,尽可能
 | 
			
		||||
把系统时钟误差,维持在一秒以内。
 | 
			
		||||
 | 
			
		||||
    vsntp 的做法有下列缺陷:频繁校时时,网路流量很大,频宽的负荷不小
 | 
			
		||||
,对对方 NTP 伺服器也会造成很大的负担。你最好自己在区网内,架一台自
 | 
			
		||||
己的 NTP 伺服器。同时因 settimeofday() 强制时间设定太频繁了,系统的
 | 
			
		||||
高精度计时功能会出问题。
 | 
			
		||||
 | 
			
		||||
  vsntp 用 sleep() 呼叫来定时校时。在某些系统上 sleep() 可能不大正
 | 
			
		||||
常。若 vsntp 校时一段时间后就不动了,系统上的 sleep() 呼叫不正常时,
 | 
			
		||||
可以改用 -a 选项换成 alarm() 计时器试看看。
 | 
			
		||||
 | 
			
		||||
  若碰到任何问题,请参阅你系统的上的 syslog 记录。 vsntp 把详细侦错
 | 
			
		||||
讯息,都以 LOG_DEBUG 层次, LOG_DAEMON 类别记录到 syslog 中。你可以在
 | 
			
		||||
/etc/syslog.conf 中加上这一行,写入侦错讯息:
 | 
			
		||||
 | 
			
		||||
     daemon.debug  /var/log/debug
 | 
			
		||||
 | 
			
		||||
并查阅 /var/log/debug 中的侦错讯息。记得在侦错结束后关闭。侦错讯息流
 | 
			
		||||
量很大,很快就会塞爆硬碟。就算没塞爆,大量资料写入硬碟,对系统效能的
 | 
			
		||||
影响也很大。
 | 
			
		||||
 | 
			
		||||
   vsntp 原是为 GNU/Linux 系统上执行而写。 vsntp 用的都是 POSIX 相
 | 
			
		||||
容的系统呼叫,在 POSIX 相容系统上应该都可以执行。不过目前为止我只有
 | 
			
		||||
Cygwin ,只在 Cygwin 上测试过。 Cygwin 上可以执行。若你可以成功在其它
 | 
			
		||||
系统上执行,请来信告知。若需要任何原始程式的修正,亦请一并附给我。我
 | 
			
		||||
知道因为 PID 档路径处理方式,所以无法在 MSWin32 上执行。
 | 
			
		||||
 | 
			
		||||
  vsntp 只在 GNU/Linux 系统上测试执行过。 vsntp 用的都是 POSIX 相容
 | 
			
		||||
的系统呼叫,在 POSIX 相容系统上应该都可以执行。不过我没有其它系统,无
 | 
			
		||||
从测试起。若你可以成功在其它系统上执行,请来信告知。若需要任何原始程式
 | 
			
		||||
的修正,亦请一并附给我。我知道因为 PID 档路径处理方式,所以无法在
 | 
			
		||||
MSWin32 上执行。但在 Cygwin 上说不定可以执行。
 | 
			
		||||
 | 
			
		||||
  若你可以在其它虚拟机器上执行 vsntp ,例如 VMWare ,请来信告知。
 | 
			
		||||
 | 
			
		||||
  基本上,若你在用 vsntp ,请一定要来信告诉我。我很想知道 vsntp 是
 | 
			
		||||
不是真的有人在用,对世界和平有帮助 *^_^* 或只是自己写好玩的而已。 :p
 | 
			
		||||
 | 
			
		||||
    vsntp 是我写的第一个 daemon ,我写的第一个 socket 程式,也是我第
 | 
			
		||||
一个公开发行的 C 程式。请多多指教~ ^_*'
 | 
			
		||||
							
								
								
									
										82
									
								
								README.zh-tw
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								README.zh-tw
									
									
									
									
									
								
							@@ -1,82 +0,0 @@
 | 
			
		||||
vsntp 讀我說明
 | 
			
		||||
 | 
			
		||||
    請參閱 INSTALL 檔案,以取得安裝執行的相關說明。
 | 
			
		||||
 | 
			
		||||
    想知道 vsntp 的最新消息,下載最新版本,請參閱:
 | 
			
		||||
 | 
			
		||||
      http://vsntp.sourceforge.net/
 | 
			
		||||
      http://sourceforge.net/projects/vsntp
 | 
			
		||||
      http://www.imacat.idv.tw/tech/vsntp.html
 | 
			
		||||
      ftp://ftp.imacat.idv.tw/pub/vsntp/
 | 
			
		||||
 | 
			
		||||
    作者的 PGP Public Key 可在下列網址下載:
 | 
			
		||||
 | 
			
		||||
      http://www.imacat.idv.tw/me/pgpkey.txt
 | 
			
		||||
 | 
			
		||||
簡介:
 | 
			
		||||
 | 
			
		||||
    vsntp 是 SNTP 客戶端服務程式,專為時間不正常的系統設計。 vsntp
 | 
			
		||||
的意思是 SNTP for Virtual PC ,原先是我為了在 Connectix Virtual PC
 | 
			
		||||
上跑 GNU/Linux 系統而寫。 vsntp 依 RFC 1769 SNTP 標準,連線到 SNTP 伺
 | 
			
		||||
服器上的 UDP 埠 123 以校時。
 | 
			
		||||
 | 
			
		||||
    若沒有裝 Virtual PC Additions , Virtual PC 的時間很亂。 Virtual
 | 
			
		||||
PC 的 RTC ( Real Time Clock, 或稱 CMOS 時鐘、硬體時鐘)是用軟體模擬
 | 
			
		||||
出來的,往往根本沒有在跑。 GNU/Linux 核心勉強維持一個大概的時間。正常
 | 
			
		||||
情況下,平均一分鐘會快四秒,一天快一個半小時。這實在是太誇張了,用眼
 | 
			
		||||
睛都分辨得出時鐘速度有問題。
 | 
			
		||||
 | 
			
		||||
    David L. Mills 的 ntp 校時伺服器在此完全失靈。 ntp 先測出系統時間
 | 
			
		||||
速度偏移,用 adjtimex() 來調整系統時鐘速度,用這個方法漸近式調整,系
 | 
			
		||||
統本身和相關應用程式比較不會出問題。這個方法有一個前提:時間速度本身
 | 
			
		||||
恆定不變。可是 Virtual PC 不講這一套。 Virtual PC 的時間純粹是軟體模
 | 
			
		||||
擬出來的,受主電腦負荷與其它因素影響,時快時慢。沒有固定的時間速度,
 | 
			
		||||
也就沒有時間速度偏移值。怎麼測都是枉然。
 | 
			
		||||
 | 
			
		||||
    David L. Mills 的 ntp 程式裏,附了一 sntp 客戶端程式,可以放在
 | 
			
		||||
crontab 裏定期對時,對時完結束程式。問題是, crontab 最小單位為分,
 | 
			
		||||
頂多一分鐘跑一次,可是 Virtual PC 的時間一分鐘慢四秒。一分鐘退回四秒
 | 
			
		||||
,大多數應用程式都受不了。一分鐘跑一次,對系統的負荷也很大。
 | 
			
		||||
 | 
			
		||||
    vsntp 是為此而寫的。它以 daemon 來執行,以免每次對時都對系統造成
 | 
			
		||||
嚴重負荷。它用 settimeofday() 來調整時間,校時頻率可任意設定,儘可能
 | 
			
		||||
把系統時鐘誤差,維持在一秒以內。
 | 
			
		||||
 | 
			
		||||
    vsntp 的做法有下列缺陷:頻繁校時時,網路流量很大,頻寬的負荷不小
 | 
			
		||||
,對對方 NTP 伺服器也會造成很大的負擔。妳最好自己在區網內,架一台自
 | 
			
		||||
己的 NTP 伺服器。同時因 settimeofday() 強制時間設定太頻繁了,系統的
 | 
			
		||||
高精度計時功能會出問題。
 | 
			
		||||
 | 
			
		||||
  vsntp 用 sleep() 呼叫來定時校時。在某些系統上 sleep() 可能不大正
 | 
			
		||||
常。若 vsntp 校時一段時間後就不動了,系統上的 sleep() 呼叫不正常時,
 | 
			
		||||
可以改用 -a 選項換成 alarm() 計時器試看看。
 | 
			
		||||
 | 
			
		||||
  若碰到任何問題,請參閱妳系統的上的 syslog 記錄。 vsntp 把詳細偵錯
 | 
			
		||||
訊息,都以 LOG_DEBUG 層次, LOG_DAEMON 類別記錄到 syslog 中。妳可以在
 | 
			
		||||
/etc/syslog.conf 中加上這一行,寫入偵錯訊息:
 | 
			
		||||
 | 
			
		||||
     daemon.debug  /var/log/debug
 | 
			
		||||
 | 
			
		||||
並查閱 /var/log/debug 中的偵錯訊息。記得在偵錯結束後關閉。偵錯訊息流
 | 
			
		||||
量很大,很快就會塞爆硬碟。就算沒塞爆,大量資料寫入硬碟,對系統效能的
 | 
			
		||||
影響也很大。
 | 
			
		||||
 | 
			
		||||
   vsntp 原是為 GNU/Linux 系統上執行而寫。 vsntp 用的都是 POSIX 相
 | 
			
		||||
容的系統呼叫,在 POSIX 相容系統上應該都可以執行。不過目前為止我只有
 | 
			
		||||
Cygwin ,只在 Cygwin 上測試過。 Cygwin 上可以執行。若妳可以成功在其它
 | 
			
		||||
系統上執行,請來信告知。若需要任何原始程式的修正,亦請一併附給我。我
 | 
			
		||||
知道因為 PID 檔路徑處理方式,所以無法在 MSWin32 上執行。
 | 
			
		||||
 | 
			
		||||
  vsntp 只在 GNU/Linux 系統上測試執行過。 vsntp 用的都是 POSIX 相容
 | 
			
		||||
的系統呼叫,在 POSIX 相容系統上應該都可以執行。不過我沒有其它系統,無
 | 
			
		||||
從測試起。若妳可以成功在其它系統上執行,請來信告知。若需要任何原始程式
 | 
			
		||||
的修正,亦請一併附給我。我知道因為 PID 檔路徑處理方式,所以無法在
 | 
			
		||||
MSWin32 上執行。但在 Cygwin 上說不定可以執行。
 | 
			
		||||
 | 
			
		||||
  若妳可以在其它虛擬機器上執行 vsntp ,例如 VMWare ,請來信告知。
 | 
			
		||||
 | 
			
		||||
  基本上,若妳在用 vsntp ,請一定要來信告訴我。我很想知道 vsntp 是
 | 
			
		||||
不是真的有人在用,對世界和平有幫助 *^_^* 或只是自己寫好玩的而已。 :p
 | 
			
		||||
 | 
			
		||||
    vsntp 是我寫的第一個 daemon ,我寫的第一個 socket 程式,也是我第
 | 
			
		||||
一個公開發行的 C 程式。請多多指教~ ^_*'
 | 
			
		||||
@@ -1,5 +0,0 @@
 | 
			
		||||
    感谢 SourceForge 热心提供架设 vsntp 。
 | 
			
		||||
 | 
			
		||||
    感谢 Jean-Alain Le Borgne <jalb@pobox.com> 於 2007-03-26 侦错并找出
 | 
			
		||||
以 sleep() 定时,在 MS Virtual PC 2007 暂停一段时间后恢复,会醒不来的问题,
 | 
			
		||||
回报该问题,并提供 alarm() 作为替代的定时器的修正程式。
 | 
			
		||||
@@ -1,5 +0,0 @@
 | 
			
		||||
    感謝 SourceForge 熱心提供架設 vsntp 。
 | 
			
		||||
 | 
			
		||||
    感謝 Jean-Alain Le Borgne <jalb@pobox.com> 於 2007-03-26 偵錯並找出
 | 
			
		||||
以 sleep() 定時,在 MS Virtual PC 2007 暫停一段時間後恢復,會醒不來的問題,
 | 
			
		||||
回報該問題,並提供 alarm() 作為替代的定時器的修正程式。
 | 
			
		||||
							
								
								
									
										122
									
								
								config.h.in
									
									
									
									
									
								
							
							
						
						
									
										122
									
								
								config.h.in
									
									
									
									
									
								
							@@ -1,122 +0,0 @@
 | 
			
		||||
/* config.h.in.  Generated from configure.ac by autoheader.  */
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the `alarm' function. */
 | 
			
		||||
#undef HAVE_ALARM
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
 | 
			
		||||
#undef HAVE_ARPA_INET_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the `fork' function. */
 | 
			
		||||
#undef HAVE_FORK
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the `gethostbyname' function. */
 | 
			
		||||
#undef HAVE_GETHOSTBYNAME
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the `gettimeofday' function. */
 | 
			
		||||
#undef HAVE_GETTIMEOFDAY
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <inttypes.h> header file. */
 | 
			
		||||
#undef HAVE_INTTYPES_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
 | 
			
		||||
   to 0 otherwise. */
 | 
			
		||||
#undef HAVE_MALLOC
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <memory.h> header file. */
 | 
			
		||||
#undef HAVE_MEMORY_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <netdb.h> header file. */
 | 
			
		||||
#undef HAVE_NETDB_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <netinet/in.h> header file. */
 | 
			
		||||
#undef HAVE_NETINET_IN_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the `socket' function. */
 | 
			
		||||
#undef HAVE_SOCKET
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <stdint.h> header file. */
 | 
			
		||||
#undef HAVE_STDINT_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <stdlib.h> header file. */
 | 
			
		||||
#undef HAVE_STDLIB_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the `strerror' function. */
 | 
			
		||||
#undef HAVE_STRERROR
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <strings.h> header file. */
 | 
			
		||||
#undef HAVE_STRINGS_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <string.h> header file. */
 | 
			
		||||
#undef HAVE_STRING_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <syslog.h> header file. */
 | 
			
		||||
#undef HAVE_SYSLOG_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <sys/socket.h> header file. */
 | 
			
		||||
#undef HAVE_SYS_SOCKET_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <sys/stat.h> header file. */
 | 
			
		||||
#undef HAVE_SYS_STAT_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <sys/time.h> header file. */
 | 
			
		||||
#undef HAVE_SYS_TIME_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <sys/types.h> header file. */
 | 
			
		||||
#undef HAVE_SYS_TYPES_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <unistd.h> header file. */
 | 
			
		||||
#undef HAVE_UNISTD_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the `vfork' function. */
 | 
			
		||||
#undef HAVE_VFORK
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the <vfork.h> header file. */
 | 
			
		||||
#undef HAVE_VFORK_H
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if `fork' works. */
 | 
			
		||||
#undef HAVE_WORKING_FORK
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if `vfork' works. */
 | 
			
		||||
#undef HAVE_WORKING_VFORK
 | 
			
		||||
 | 
			
		||||
/* Name of package */
 | 
			
		||||
#undef PACKAGE
 | 
			
		||||
 | 
			
		||||
/* Define to the address where bug reports for this package should be sent. */
 | 
			
		||||
#undef PACKAGE_BUGREPORT
 | 
			
		||||
 | 
			
		||||
/* Define to the full name of this package. */
 | 
			
		||||
#undef PACKAGE_NAME
 | 
			
		||||
 | 
			
		||||
/* Define to the full name and version of this package. */
 | 
			
		||||
#undef PACKAGE_STRING
 | 
			
		||||
 | 
			
		||||
/* Define to the one symbol short name of this package. */
 | 
			
		||||
#undef PACKAGE_TARNAME
 | 
			
		||||
 | 
			
		||||
/* Define to the home page for this package. */
 | 
			
		||||
#undef PACKAGE_URL
 | 
			
		||||
 | 
			
		||||
/* Define to the version of this package. */
 | 
			
		||||
#undef PACKAGE_VERSION
 | 
			
		||||
 | 
			
		||||
/* Define to 1 if you have the ANSI C header files. */
 | 
			
		||||
#undef STDC_HEADERS
 | 
			
		||||
 | 
			
		||||
/* Version number of package */
 | 
			
		||||
#undef VERSION
 | 
			
		||||
 | 
			
		||||
/* Define to rpl_malloc if the replacement function should be used. */
 | 
			
		||||
#undef malloc
 | 
			
		||||
 | 
			
		||||
/* Define to `int' if <sys/types.h> does not define. */
 | 
			
		||||
#undef pid_t
 | 
			
		||||
 | 
			
		||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
 | 
			
		||||
#undef size_t
 | 
			
		||||
 | 
			
		||||
/* Define to `int' if <sys/types.h> does not define. */
 | 
			
		||||
#undef ssize_t
 | 
			
		||||
 | 
			
		||||
/* Define as `fork' if `vfork' does not work. */
 | 
			
		||||
#undef vfork
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
## GNU General Public License for more details.
 | 
			
		||||
## 
 | 
			
		||||
## You should have received a copy of the GNU General Public License
 | 
			
		||||
## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
## along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
AUTOMAKE_OPTIONS =	gnits
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								doc/vsntp.8
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								doc/vsntp.8
									
									
									
									
									
								
							@@ -46,7 +46,7 @@ That is insane.  You can even tell it with your eyes.
 | 
			
		||||
David L. Mills'
 | 
			
		||||
.B ntp
 | 
			
		||||
does not work here.  It uses a method that learns the clock frequency
 | 
			
		||||
drift first, and adjust the kerenl clock with
 | 
			
		||||
drift first, and adjust the kernel clock with
 | 
			
		||||
.B adjtimex()
 | 
			
		||||
so that time adjustment goes smoothly, from the point of view of
 | 
			
		||||
system and applications.  This assumes an existing fix-speed system
 | 
			
		||||
@@ -174,29 +174,14 @@ and check the
 | 
			
		||||
.I /var/log/debug
 | 
			
		||||
file for the debugging message.  Remember to remove this afterwards,
 | 
			
		||||
for the amount of the debugging messages may be huge and may use up
 | 
			
		||||
your harddisk in a very short time.  To the least it may slow down
 | 
			
		||||
your system for frequent harddisk
 | 
			
		||||
your hard disk in a very short time.  To the least it may slow down
 | 
			
		||||
your system for frequent hard disk
 | 
			
		||||
.SM "I/O" .
 | 
			
		||||
.SH BUGS
 | 
			
		||||
The
 | 
			
		||||
.B vsntp
 | 
			
		||||
is hosted on SourceForge and Tavern IMACAT's.  For the latest
 | 
			
		||||
infomation, see:
 | 
			
		||||
 | 
			
		||||
  http://vsntp.sourceforge.net/
 | 
			
		||||
  https://sourceforge.net/projects/vsntp/
 | 
			
		||||
  http://www.imacat.idv.tw/tech/vsntp.html
 | 
			
		||||
 | 
			
		||||
.B vsntp has a mailing list hosted at SourceForge:
 | 
			
		||||
vsntp-users@lists.sourceforge.net .  Please submit your questions,
 | 
			
		||||
suggestions or bug reports there.  It is a Mailman mailing list.
 | 
			
		||||
For more information, see:
 | 
			
		||||
 | 
			
		||||
  https://lists.sourceforge.net/lists/listinfo/vsntp-users
 | 
			
		||||
 | 
			
		||||
Alternatively, you can send a mail to:
 | 
			
		||||
vsntp-users-request@lists.sourceforge.net with the subject
 | 
			
		||||
.B help
 | 
			
		||||
for a list of available e-mail commands.
 | 
			
		||||
project is hosted on GitHub.  Address your issues on the GitHub issue
 | 
			
		||||
tracker https://github.com/imacat/chklinks/issues.
 | 
			
		||||
.SH AUTHOR
 | 
			
		||||
imacat <imacat@mail.imacat.idv.tw>.
 | 
			
		||||
.SH "SEE ALSO"
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ This manual is for vsntp
 | 
			
		||||
(version @value{VERSION}, @value{UPDATED}),
 | 
			
		||||
a SNTP daemon for Virtual @acronym{PC}@.
 | 
			
		||||
 | 
			
		||||
Copyright @copyright{} 2003-2007 imacat@.
 | 
			
		||||
Copyright @copyright{} 2003-2021 imacat@.
 | 
			
		||||
 | 
			
		||||
@quotation
 | 
			
		||||
Permission is granted to copy, distribute and/or modify this document
 | 
			
		||||
@@ -33,7 +33,7 @@ Free Documentation License''@.
 | 
			
		||||
@insertcopying
 | 
			
		||||
Published by imacat@*
 | 
			
		||||
@email{imacat@@mail.imacat.idv.tw}@*
 | 
			
		||||
@uref{http://www.imacat.idv.tw/}@*
 | 
			
		||||
@uref{https://www.imacat.idv.tw/}@*
 | 
			
		||||
@end titlepage
 | 
			
		||||
@c Output the table of contents at the beginning.
 | 
			
		||||
@contents
 | 
			
		||||
@@ -84,7 +84,7 @@ insane@.  You can even tell it with your eyes@.
 | 
			
		||||
@findex adjtimex()
 | 
			
		||||
@uref{http://www.ntp.org/,David L. Mills' @command{ntp}} does not
 | 
			
		||||
work here@.  It uses a method that learns the clock frequency drift
 | 
			
		||||
first, and adjust the kerenl clock with @code{adjtimex()} so that
 | 
			
		||||
first, and adjust the kernel clock with @code{adjtimex()} so that
 | 
			
		||||
time adjustment goes smoothly, from the point of view of system and
 | 
			
		||||
applications@.  This assumes an existing fix-speed system clock@.
 | 
			
		||||
But this is not the case of Virtual @acronym{PC}@.  The system clock
 | 
			
		||||
@@ -135,9 +135,9 @@ daemon.debug   /var/log/debug
 | 
			
		||||
 | 
			
		||||
and check the @file{/var/log/debug} file for the debugging message@.
 | 
			
		||||
Remember to remove this afterwards, for the amount of the debugging
 | 
			
		||||
messages may be huge and may use up your harddisk in a very short
 | 
			
		||||
messages may be huge and may use up your hard disk in a very short
 | 
			
		||||
time@.  To the least it may slow down your system for frequent
 | 
			
		||||
harddisk @acronym{I/O}@.
 | 
			
		||||
hard disk @acronym{I/O}@.
 | 
			
		||||
 | 
			
		||||
@command{vsntp} was originally written for @acronym{GNU}/Linux@.  It
 | 
			
		||||
uses @acronym{POSIX} compatible system calls@.  It should work on
 | 
			
		||||
@@ -149,7 +149,7 @@ other systems@.  I know it does not work on MSWin32, for the way it
 | 
			
		||||
handles the @acronym{PID} file path@.
 | 
			
		||||
 | 
			
		||||
Please tell me if you have successfully running @command{vsntp} on
 | 
			
		||||
other virtual machines, like @uref{http://www.vmware.com/, VMWare}@.
 | 
			
		||||
other virtual machines, like @uref{https://www.vmware.com/, VMWare}@.
 | 
			
		||||
 | 
			
		||||
Generally, please tell me if you are using @command{vsntp}@.  I
 | 
			
		||||
would like to know that I am really doing some good for the world,
 | 
			
		||||
@@ -164,20 +164,14 @@ would like to know that I am really doing some good for the world,
 | 
			
		||||
@cindex download
 | 
			
		||||
@cindex SourceForge
 | 
			
		||||
@cindex Tavern IMACAT's
 | 
			
		||||
@command{vsntp}'s official website is at@dots{}
 | 
			
		||||
@command{vsntp} is hosted is on@dots{}
 | 
			
		||||
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
@uref{https://sourceforge.net/,SourceForge}'s home site:
 | 
			
		||||
@uref{http://vsntp.sourceforge.net/}
 | 
			
		||||
@uref{https://github.com/imacat/vsntp,vsntp project on GitHub}
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
@uref{https://sourceforge.net/,SourceForge}'s project page:
 | 
			
		||||
@uref{https://sourceforge.net/projects/vsntp/}
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
@uref{http://www.imacat.idv.tw/,Tavern IMACAT's} page:
 | 
			
		||||
@uref{http://www.imacat.idv.tw/tech/vsntp.html}
 | 
			
		||||
@uref{https://sf.net/p/vsntp,vsntp project on SourceForge}
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
You can always download the newest version of @command{vsntp}
 | 
			
		||||
@@ -186,23 +180,17 @@ from@dots{}
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
SourceForge:
 | 
			
		||||
@uref{https://sourceforge.net/project/showfiles.php?group_id=99098}
 | 
			
		||||
@uref{https://sourceforge.net/projects/vsntp/files,vsntp download on SourceForge}
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Tavern IMACAT's @acronym{FTP}:
 | 
			
		||||
@uref{ftp://ftp.imacat.idv.tw/pub/vsntp/}
 | 
			
		||||
@uref{https://ftp.imacat.idv.tw/pub/chklinks/,Tavern IMACAT's FTP directory}
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
imacat's @acronym{PGP} public key is at@dots{}
 | 
			
		||||
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
SourceForge:
 | 
			
		||||
@uref{http://vsntp.sourceforge.net/pgpkey.asc}
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Tavern IMACAT's:
 | 
			
		||||
@uref{http://www.imacat.idv.tw/me/pgpkey.asc}
 | 
			
		||||
@uref{https://www.imacat.idv.tw/me/pgpkey.asc,imacat’s PGP key at Tavern IMACAT’s}
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -330,34 +318,10 @@ Display version information@.
 | 
			
		||||
 | 
			
		||||
@cindex SourceForge
 | 
			
		||||
@cindex Tavern IMACAT's
 | 
			
		||||
@command{vsntp} is hosted on
 | 
			
		||||
@uref{https://sourceforge.net/,SourceForge} and
 | 
			
		||||
@uref{http://www.imacat.idv.tw/,Tavern IMACAT's}@.  For the latest
 | 
			
		||||
infomation, see:
 | 
			
		||||
 | 
			
		||||
@itemize
 | 
			
		||||
@item
 | 
			
		||||
@uref{http://vsntp.sourceforge.net/}
 | 
			
		||||
@item
 | 
			
		||||
@uref{https://sourceforge.net/projects/vsntp/}
 | 
			
		||||
@item
 | 
			
		||||
@uref{http://www.imacat.idv.tw/tech/vsntp.html}
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
@cindex mailing list
 | 
			
		||||
@cindex Mailman
 | 
			
		||||
@command{vsntp} has a mailing list hosted at
 | 
			
		||||
@uref{https://sourceforge.net/,SourceForge}:
 | 
			
		||||
@email{vsntp-users@@lists.sourceforge.net}@.  Please submit your
 | 
			
		||||
questions, suggestions or bug reports there@.  It is a
 | 
			
		||||
@uref{http://www.list.org/,Mailman} mailing list@.  For more
 | 
			
		||||
information, see:
 | 
			
		||||
@uref{https://lists.sourceforge.net/lists/listinfo/vsntp-users}@.
 | 
			
		||||
Alternatively, you can send a mail to:
 | 
			
		||||
@email{vsntp-users-request@@lists.sourceforge.net}
 | 
			
		||||
with the subject @code{help} for a list of available e-mail
 | 
			
		||||
commands@.
 | 
			
		||||
 | 
			
		||||
The @command{vsntp} project is hosted on GitHub.  Address your issues on the
 | 
			
		||||
GitHub issue tracker
 | 
			
		||||
@uref{https://github.com/imacat/vsntp/issues}
 | 
			
		||||
.
 | 
			
		||||
 | 
			
		||||
@node References
 | 
			
		||||
@unnumbered References
 | 
			
		||||
@@ -385,7 +349,7 @@ commands@.
 | 
			
		||||
@unnumbered Copyright
 | 
			
		||||
 | 
			
		||||
@quotation
 | 
			
		||||
Copyright @copyright{} 2003-2007 imacat@.
 | 
			
		||||
Copyright @copyright{} 2003-2021 imacat@.
 | 
			
		||||
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the @cite{@acronym{GNU} General Public License}
 | 
			
		||||
@@ -399,7 +363,7 @@ See the @cite{@acronym{GNU} General Public License} for more details@.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the @cite{@acronym{GNU} General
 | 
			
		||||
Public License} along with this program@.  If not, see
 | 
			
		||||
<@uref{http://www.gnu.org/licenses/}>@.
 | 
			
		||||
<@uref{https://www.gnu.org/licenses/}>@.
 | 
			
		||||
@end quotation
 | 
			
		||||
 | 
			
		||||
@node Index
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
## GNU General Public License for more details.
 | 
			
		||||
## 
 | 
			
		||||
## You should have received a copy of the GNU General Public License
 | 
			
		||||
## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
## along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
AUTOMAKE_OPTIONS =	gnits
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ systems (Knoppix, Ubuntu... etc.)  The other is for Red Hat based systems
 | 
			
		||||
(Fedora, Mandriva... etc.)  They are not installed by default.  You may
 | 
			
		||||
install them so that vsntp will start as a daemon after each reboot.
 | 
			
		||||
 | 
			
		||||
    Installion is easy.  You have to be root.
 | 
			
		||||
    Installation is easy.  You have to be root.
 | 
			
		||||
 | 
			
		||||
DEBIAN BASED SYSTEMS
 | 
			
		||||
 | 
			
		||||
@@ -31,7 +31,7 @@ server.  Once finished, run:
 | 
			
		||||
 | 
			
		||||
    And watch the syslog.  vsntp shall start working.
 | 
			
		||||
 | 
			
		||||
    To run it every time the system boots, use updat-rc.d:
 | 
			
		||||
    To run it every time the system boots, use update-rc.d:
 | 
			
		||||
 | 
			
		||||
      # update-rc.d vsntp defaults 23
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,59 +0,0 @@
 | 
			
		||||
vsntp SysV init.d 启动程式读我说明
 | 
			
		||||
 | 
			
		||||
目录
 | 
			
		||||
 | 
			
		||||
  * 前言
 | 
			
		||||
  * Debian 类系统
 | 
			
		||||
  * Red Hat 类系统
 | 
			
		||||
 | 
			
		||||
前言
 | 
			
		||||
 | 
			
		||||
  自 2.0.0 版起, vsntp 新增了两个 SysV 式的启动程式,及一个启动设定档。
 | 
			
		||||
一个程式是 Debian 类的系统(如 Knoppix 、 Ubuntu 等)专用,另一个则是
 | 
			
		||||
Red Hat 类系统专用(如 Fedora 、 Mandriva 等)。安装 vsntp 时,不会自动安
 | 
			
		||||
装这些档案。若你希望每次系统启动都会自动启动 vsntp ,你可以安装这些档案。
 | 
			
		||||
 | 
			
		||||
  安装不难。你要先切为 root 的权限。
 | 
			
		||||
 | 
			
		||||
Debian 类系统
 | 
			
		||||
 | 
			
		||||
  将档案复制到相关目录:
 | 
			
		||||
 | 
			
		||||
      # cp vsntp.debian /etc/init.d/vsntp
 | 
			
		||||
      # cp vsntp /etc/default/vsntp
 | 
			
		||||
 | 
			
		||||
  编辑 /etc/default/vsntp ,依你的环境需求修改其中的设定。记得一定要将
 | 
			
		||||
SERVER= 那一行前的 # 符号去掉,改为你自己架的时间伺服器。改好后,执行:
 | 
			
		||||
 | 
			
		||||
      # /etc/init.d/vsntp start
 | 
			
		||||
 | 
			
		||||
  查阅 syslog 记录档,应该就会开始校时了。
 | 
			
		||||
 | 
			
		||||
  若要在每次系统启动时自动执行,可以跑 updat-rc.d :
 | 
			
		||||
 | 
			
		||||
      # update-rc.d vsntp defaults 23
 | 
			
		||||
 | 
			
		||||
  23 是 Debian NTP 套件的启动顺序。你也可以自设适当的启动顺序。
 | 
			
		||||
 | 
			
		||||
Red Hat 类系统
 | 
			
		||||
 | 
			
		||||
  将档案复制到相关目录:
 | 
			
		||||
 | 
			
		||||
      # cp vsntp.redhat /etc/init.d/vsntp
 | 
			
		||||
      # cp vsntp /etc/sysconfig/vsntp
 | 
			
		||||
 | 
			
		||||
  编辑 /etc/sysconfig/vsntp ,依你的环境需求修改其中的设定。记得一定
 | 
			
		||||
要将 SERVER= 那一行前的 # 符号去掉,改为你自己架的时间伺服器。改好后,
 | 
			
		||||
执行:
 | 
			
		||||
 | 
			
		||||
      # /etc/init.d/vsntp start
 | 
			
		||||
 | 
			
		||||
  查阅 syslog 记录档,应该就会开始校时了。
 | 
			
		||||
 | 
			
		||||
  若要在每次系统启动时自动执行,可以跑 chkconfig :
 | 
			
		||||
 | 
			
		||||
      # chkconfig --add vsntp
 | 
			
		||||
 | 
			
		||||
依玛猫
 | 
			
		||||
imacat@mail.imacat.idv.tw
 | 
			
		||||
2007-03-30
 | 
			
		||||
@@ -1,59 +0,0 @@
 | 
			
		||||
vsntp SysV init.d 啟動程式讀我說明
 | 
			
		||||
 | 
			
		||||
目錄
 | 
			
		||||
 | 
			
		||||
  * 前言
 | 
			
		||||
  * Debian 類系統
 | 
			
		||||
  * Red Hat 類系統
 | 
			
		||||
 | 
			
		||||
前言
 | 
			
		||||
 | 
			
		||||
  自 2.0.0 版起, vsntp 新增了兩個 SysV 式的啟動程式,及一個啟動設定檔。
 | 
			
		||||
一個程式是 Debian 類的系統(如 Knoppix 、 Ubuntu 等)專用,另一個則是
 | 
			
		||||
Red Hat 類系統專用(如 Fedora 、 Mandriva 等)。安裝 vsntp 時,不會自動安
 | 
			
		||||
裝這些檔案。若妳希望每次系統啟動都會自動啟動 vsntp ,妳可以安裝這些檔案。
 | 
			
		||||
 | 
			
		||||
  安裝不難。妳要先切為 root 的權限。
 | 
			
		||||
 | 
			
		||||
Debian 類系統
 | 
			
		||||
 | 
			
		||||
  將檔案複製到相關目錄:
 | 
			
		||||
 | 
			
		||||
      # cp vsntp.debian /etc/init.d/vsntp
 | 
			
		||||
      # cp vsntp /etc/default/vsntp
 | 
			
		||||
 | 
			
		||||
  編輯 /etc/default/vsntp ,依妳的環境需求修改其中的設定。記得一定要將
 | 
			
		||||
SERVER= 那一行前的 # 符號去掉,改為妳自己架的時間伺服器。改好後,執行:
 | 
			
		||||
 | 
			
		||||
      # /etc/init.d/vsntp start
 | 
			
		||||
 | 
			
		||||
  查閱 syslog 記錄檔,應該就會開始校時了。
 | 
			
		||||
 | 
			
		||||
  若要在每次系統啟動時自動執行,可以跑 updat-rc.d :
 | 
			
		||||
 | 
			
		||||
      # update-rc.d vsntp defaults 23
 | 
			
		||||
 | 
			
		||||
  23 是 Debian NTP 套件的啟動順序。妳也可以自設適當的啟動順序。
 | 
			
		||||
 | 
			
		||||
Red Hat 類系統
 | 
			
		||||
 | 
			
		||||
  將檔案複製到相關目錄:
 | 
			
		||||
 | 
			
		||||
      # cp vsntp.redhat /etc/init.d/vsntp
 | 
			
		||||
      # cp vsntp /etc/sysconfig/vsntp
 | 
			
		||||
 | 
			
		||||
  編輯 /etc/sysconfig/vsntp ,依妳的環境需求修改其中的設定。記得一定
 | 
			
		||||
要將 SERVER= 那一行前的 # 符號去掉,改為妳自己架的時間伺服器。改好後,
 | 
			
		||||
執行:
 | 
			
		||||
 | 
			
		||||
      # /etc/init.d/vsntp start
 | 
			
		||||
 | 
			
		||||
  查閱 syslog 記錄檔,應該就會開始校時了。
 | 
			
		||||
 | 
			
		||||
  若要在每次系統啟動時自動執行,可以跑 chkconfig :
 | 
			
		||||
 | 
			
		||||
      # chkconfig --add vsntp
 | 
			
		||||
 | 
			
		||||
依瑪貓
 | 
			
		||||
imacat@mail.imacat.idv.tw
 | 
			
		||||
2007-03-30
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# start and stop the SNTP client for Virtual PC
 | 
			
		||||
 | 
			
		||||
# LSB-convension comments
 | 
			
		||||
# See: http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
 | 
			
		||||
# LSB-convention comments
 | 
			
		||||
# See: https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
 | 
			
		||||
### BEGIN INIT INFO
 | 
			
		||||
# Provides:          vsntp
 | 
			
		||||
# Required-Start:    $network $time
 | 
			
		||||
@@ -11,20 +11,20 @@
 | 
			
		||||
# Default-Stop:      0 1 6
 | 
			
		||||
# Short-Description: start and stop the SNTP client for Virtual PC
 | 
			
		||||
# Description:       vsntp is a SNTP client for Virtual PC that synchronize
 | 
			
		||||
#                    time periodically for systems without hardward RTC.
 | 
			
		||||
#                    time periodically for systems without hardware RTC.
 | 
			
		||||
### END INIT INFO
 | 
			
		||||
 | 
			
		||||
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
 | 
			
		||||
 | 
			
		||||
THISFILE=${0##*/}
 | 
			
		||||
THIS_FILE=${0##*/}
 | 
			
		||||
VERSION=1.1.0
 | 
			
		||||
AUTHORNAME=imacat
 | 
			
		||||
AUTHORMAIL=imacat@mail.imacat.idv.tw
 | 
			
		||||
AUTHOR_NAME=imacat
 | 
			
		||||
AUTHOR_MAIL=imacat@mail.imacat.idv.tw
 | 
			
		||||
DESC="SNTP client for Virtual PC"
 | 
			
		||||
THISCONF=/etc/default/vsntp
 | 
			
		||||
THIS_CONF=/etc/default/vsntp
 | 
			
		||||
 | 
			
		||||
# source the configuration
 | 
			
		||||
test -e $THISCONF && . $THISCONF
 | 
			
		||||
test -e $THIS_CONF && . $THIS_CONF
 | 
			
		||||
case "$SCHEDULER" in
 | 
			
		||||
alarm|a|-a|--alarm)
 | 
			
		||||
  SCHEDULER=-a ;;
 | 
			
		||||
@@ -32,32 +32,32 @@ alarm|a|-a|--alarm)
 | 
			
		||||
  SCHEDULER=-s ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
BINPATH=/usr/sbin/vsntp
 | 
			
		||||
BINNAME=${BINPATH##*/}
 | 
			
		||||
PIDFILE=/var/run/$BINNAME.pid
 | 
			
		||||
RUNUSER=root
 | 
			
		||||
BIN_PATH=/usr/sbin/vsntp
 | 
			
		||||
BIN_NAME=${BIN_PATH##*/}
 | 
			
		||||
PID_FILE=/var/run/$BIN_NAME.pid
 | 
			
		||||
RUN_USER=root
 | 
			
		||||
 | 
			
		||||
# default values -- do not change anything here
 | 
			
		||||
_DEFSYNC_INTERVAL=900
 | 
			
		||||
_DEFSCHEDULER=-s
 | 
			
		||||
_DEF_SYNC_INTERVAL=900
 | 
			
		||||
_DEF_SCHEDULER=-s
 | 
			
		||||
 | 
			
		||||
# startup options
 | 
			
		||||
OPTS=""
 | 
			
		||||
test -n "$SCHEDULER" -a "$SCHEDULER" != "$_DEFSCHEDULER" && OPTS="$OPTS $SCHEDULER"
 | 
			
		||||
test -n "$SYNC_INTERVAL" -a "$SYNC_INTERVAL" != "$_DEFSYNC_INTERVAL" && OPTS="$OPTS -i $SYNC_INTERVAL"
 | 
			
		||||
test -n "$SCHEDULER" -a "$SCHEDULER" != "$_DEF_SCHEDULER" && OPTS="$OPTS $SCHEDULER"
 | 
			
		||||
test -n "$SYNC_INTERVAL" -a "$SYNC_INTERVAL" != "$_DEF_SYNC_INTERVAL" && OPTS="$OPTS -i $SYNC_INTERVAL"
 | 
			
		||||
OPTS="$OPTS $SERVER"
 | 
			
		||||
 | 
			
		||||
# sanity checks
 | 
			
		||||
if test ! -n "$SERVER"; then
 | 
			
		||||
  echo "$THISFILE: You must set the SERVER in $THISCONF" >&2
 | 
			
		||||
  echo "$THIS_FILE: You must set the SERVER in $THIS_CONF" >&2
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
if test ! -x $BINPATH; then
 | 
			
		||||
  echo "$THISFILE: Missing valid daemon program at $BINPATH" >&2
 | 
			
		||||
if test ! -x $BIN_PATH; then
 | 
			
		||||
  echo "$THIS_FILE: Missing valid daemon program at $BIN_PATH" >&2
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
if test -n "$USER" -a ! "$USER" = "root"; then
 | 
			
		||||
  echo "$THISFILE: You need to be root to run this script." >&2
 | 
			
		||||
  echo "$THIS_FILE: You need to be root to run this script." >&2
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -65,9 +65,9 @@ start () {
 | 
			
		||||
  echo -n "Starting $DESC:"
 | 
			
		||||
  RETVAL=0
 | 
			
		||||
  
 | 
			
		||||
  echo -n " $BINNAME"
 | 
			
		||||
  start-stop-daemon --start --startas $BINPATH --quiet \
 | 
			
		||||
    --pidfile $PIDFILE --name $BINNAME --user $RUNUSER --exec $BINPATH -- $OPTS
 | 
			
		||||
  echo -n " $BIN_NAME"
 | 
			
		||||
  start-stop-daemon --start --startas $BIN_PATH --quiet \
 | 
			
		||||
    --pidfile $PID_FILE --name $BIN_NAME --user $RUN_USER --exec $BIN_PATH -- $OPTS
 | 
			
		||||
  RETVALS=$?
 | 
			
		||||
  test $RETVALS = 0 || { echo -n ":failed"; RETVAL=$RETVALS; }
 | 
			
		||||
  
 | 
			
		||||
@@ -79,12 +79,12 @@ stop () {
 | 
			
		||||
  echo -n "Stopping $DESC:"
 | 
			
		||||
  RETVAL=0
 | 
			
		||||
  
 | 
			
		||||
  echo -n " $BINNAME"
 | 
			
		||||
  echo -n " $BIN_NAME"
 | 
			
		||||
  start-stop-daemon --stop --quiet \
 | 
			
		||||
    --pidfile $PIDFILE --name $BINNAME --user $RUNUSER --exec $BINPATH
 | 
			
		||||
    --pidfile $PID_FILE --name $BIN_NAME --user $RUN_USER --exec $BIN_PATH
 | 
			
		||||
  RETVALS=$?
 | 
			
		||||
  test $RETVALS = 0 || { echo -n ":failed"; RETVAL=$RETVALS; }
 | 
			
		||||
  rm -f $PIDFILE
 | 
			
		||||
  rm -f $PID_FILE
 | 
			
		||||
  
 | 
			
		||||
  echo "."
 | 
			
		||||
  return $RETVAL
 | 
			
		||||
@@ -102,12 +102,12 @@ status () {
 | 
			
		||||
  RETVAL=0
 | 
			
		||||
  
 | 
			
		||||
  start-stop-daemon --stop --signal 0 --quiet \
 | 
			
		||||
    --pidfile $PIDFILE --name $BINNAME --user $RUNUSER --exec $BINPATH
 | 
			
		||||
    --pidfile $PID_FILE --name $BIN_NAME --user $RUN_USER --exec $BIN_PATH
 | 
			
		||||
  RETVALS=$?
 | 
			
		||||
  if test $RETVALS = 0; then
 | 
			
		||||
    echo "$DESC $BINNAME is up and running ($(<$PIDFILE))."
 | 
			
		||||
    echo "$DESC $BIN_NAME is up and running ($(<$PID_FILE))."
 | 
			
		||||
  else
 | 
			
		||||
    echo "$DESC $BINNAME is not running (or some problem may exists)."
 | 
			
		||||
    echo "$DESC $BIN_NAME is not running (or some problem may exists)."
 | 
			
		||||
    RETVAL=$RETVALS
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
@@ -123,7 +123,7 @@ while test $# != 0; do
 | 
			
		||||
  -h|--help)
 | 
			
		||||
    cat << EOF
 | 
			
		||||
Start and/or stop the $DESC
 | 
			
		||||
Usage: $THISFILE {start|stop|restart|force-reload|status}
 | 
			
		||||
Usage: $THIS_FILE {start|stop|restart|force-reload|status}
 | 
			
		||||
 | 
			
		||||
  start          Start the daemon.
 | 
			
		||||
  stop           Stop the daemon.
 | 
			
		||||
@@ -131,21 +131,21 @@ Usage: $THISFILE {start|stop|restart|force-reload|status}
 | 
			
		||||
  force-reload   Enforce a reload to the configuration file.
 | 
			
		||||
  status         Display the daemon status.
 | 
			
		||||
  -h,--help      Display this help.
 | 
			
		||||
  -v,--version   Display the version infomation.
 | 
			
		||||
  -v,--version   Display the version information.
 | 
			
		||||
 | 
			
		||||
Report bugs to $AUTHORNAME <$AUTHORMAIL>
 | 
			
		||||
Report bugs to $AUTHOR_NAME <$AUTHOR_MAIL>
 | 
			
		||||
EOF
 | 
			
		||||
    exit 0
 | 
			
		||||
    ;;
 | 
			
		||||
  -v|--version)
 | 
			
		||||
    cat << EOF
 | 
			
		||||
$THISFILE version $VERSION by $AUTHORNAME <$AUTHORMAIL>
 | 
			
		||||
$THIS_FILE version $VERSION by $AUTHOR_NAME <$AUTHOR_MAIL>
 | 
			
		||||
EOF
 | 
			
		||||
    exit 0
 | 
			
		||||
    ;;
 | 
			
		||||
  *)
 | 
			
		||||
    echo "$THISFILE: unrecognized argument: $1" >&2
 | 
			
		||||
    echo "Try \`$THISFILE --help' for more infomation" >&2
 | 
			
		||||
    echo "$THIS_FILE: unrecognized argument: $1" >&2
 | 
			
		||||
    echo "Try \`$THIS_FILE --help' for more information" >&2
 | 
			
		||||
    exit 1
 | 
			
		||||
    ;;
 | 
			
		||||
  esac
 | 
			
		||||
@@ -154,8 +154,8 @@ done
 | 
			
		||||
 | 
			
		||||
# no action specified
 | 
			
		||||
if test -z "$action"; then
 | 
			
		||||
  echo "$THISFILE: what do you want to do now?" >&2
 | 
			
		||||
  echo "Try \`$THISFILE --help' for more infomation" >&2
 | 
			
		||||
  echo "$THIS_FILE: what do you want to do now?" >&2
 | 
			
		||||
  echo "Try \`$THIS_FILE --help' for more information" >&2
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,8 +7,8 @@
 | 
			
		||||
# processname: vsntp
 | 
			
		||||
# config: /etc/sysconfig/vsntp
 | 
			
		||||
 | 
			
		||||
# LSB-convension comments
 | 
			
		||||
# See: http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
 | 
			
		||||
# LSB-convention comments
 | 
			
		||||
# See: https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
 | 
			
		||||
### BEGIN INIT INFO
 | 
			
		||||
# Provides:          vsntp
 | 
			
		||||
# Required-Start:    $network $time
 | 
			
		||||
@@ -17,16 +17,16 @@
 | 
			
		||||
# Default-Stop:      0 1 6
 | 
			
		||||
# Short-Description: start and stop the SNTP client for Virtual PC
 | 
			
		||||
# Description:       vsntp is a SNTP client for Virtual PC that synchronize
 | 
			
		||||
#                    time periodically for systems without hardward RTC.
 | 
			
		||||
#                    time periodically for systems without hardware RTC.
 | 
			
		||||
### END INIT INFO
 | 
			
		||||
 | 
			
		||||
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
 | 
			
		||||
 | 
			
		||||
# initialize the environment
 | 
			
		||||
THISFILE="${0##*/}"
 | 
			
		||||
THIS_FILE="${0##*/}"
 | 
			
		||||
VERSION="1.0.0"
 | 
			
		||||
AUTHORNAME=imacat
 | 
			
		||||
AUTHORMAIL=imacat@mail.imacat.idv.tw
 | 
			
		||||
AUTHOR_NAME=imacat
 | 
			
		||||
AUTHOR_MAIL=imacat@mail.imacat.idv.tw
 | 
			
		||||
lock=/var/lock/subsys/vsntp
 | 
			
		||||
 | 
			
		||||
# Source function library.
 | 
			
		||||
@@ -49,13 +49,13 @@ alarm|a|-a|--alarm)
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# default values -- do not change anything here
 | 
			
		||||
_DEFSYNC_INTERVAL=900
 | 
			
		||||
_DEFSCHEDULER=-s
 | 
			
		||||
_DEF_SYNC_INTERVAL=900
 | 
			
		||||
_DEF_SCHEDULER=-s
 | 
			
		||||
 | 
			
		||||
RETVAL="0"
 | 
			
		||||
OPTIONS=""
 | 
			
		||||
test -n "$SCHEDULER" -a "$SCHEDULER" != "$_DEFSCHEDULER" && OPTIONS="$OPTIONS $SCHEDULER"
 | 
			
		||||
test -n "$SYNC_INTERVAL" -a "$SYNC_INTERVAL" != "$_DEFSYNC_INTERVAL" && OPTIONS="$OPTIONS -i $SYNC_INTERVAL"
 | 
			
		||||
test -n "$SCHEDULER" -a "$SCHEDULER" != "$_DEF_SCHEDULER" && OPTIONS="$OPTIONS $SCHEDULER"
 | 
			
		||||
test -n "$SYNC_INTERVAL" -a "$SYNC_INTERVAL" != "$_DEF_SYNC_INTERVAL" && OPTIONS="$OPTIONS -i $SYNC_INTERVAL"
 | 
			
		||||
OPTIONS="$OPTIONS $SERVER"
 | 
			
		||||
 | 
			
		||||
# See how we were called.
 | 
			
		||||
@@ -93,28 +93,28 @@ while [ "$#" != "0" ]; do
 | 
			
		||||
  -h|--help)
 | 
			
		||||
    cat << EOF
 | 
			
		||||
Start and/or stop the SNTP client for Virtual PC
 | 
			
		||||
Usage: $THISFILE {start|stop|restart|status}
 | 
			
		||||
Usage: $THIS_FILE {start|stop|restart|status}
 | 
			
		||||
 | 
			
		||||
  start         Start the daemon.
 | 
			
		||||
  stop          Stop the daemon.
 | 
			
		||||
  restart       Stop and restart the daemon.
 | 
			
		||||
  status        Display the daemon status
 | 
			
		||||
  -h,--help     Display this help.
 | 
			
		||||
  -v,--version  Display the version infomation.
 | 
			
		||||
  -v,--version  Display the version information.
 | 
			
		||||
 | 
			
		||||
Report bugs to $AUTHORNAME <$AUTHORMAIL>
 | 
			
		||||
Report bugs to $AUTHOR_NAME <$AUTHOR_MAIL>
 | 
			
		||||
EOF
 | 
			
		||||
    exit 0
 | 
			
		||||
    ;;
 | 
			
		||||
  -v|--version)
 | 
			
		||||
    cat << EOF
 | 
			
		||||
$THISFILE v$VERSION by $AUTHORNAME <$AUTHORMAIL>
 | 
			
		||||
$THIS_FILE v$VERSION by $AUTHOR_NAME <$AUTHOR_MAIL>
 | 
			
		||||
EOF
 | 
			
		||||
    exit 0
 | 
			
		||||
    ;;
 | 
			
		||||
  *)
 | 
			
		||||
    echo "$THISFILE: unrecognized argument: $1"
 | 
			
		||||
    echo "Try \`$THISFILE --help' for more infomation"
 | 
			
		||||
    echo "$THIS_FILE: unrecognized argument: $1"
 | 
			
		||||
    echo "Try \`$THIS_FILE --help' for more information"
 | 
			
		||||
    exit 1
 | 
			
		||||
    ;;
 | 
			
		||||
  esac
 | 
			
		||||
@@ -124,7 +124,7 @@ done
 | 
			
		||||
# check the arguments
 | 
			
		||||
if [ -z "$action" ]; then
 | 
			
		||||
  cat << EOF
 | 
			
		||||
Usage: $THISFILE {start|stop|restart|status}
 | 
			
		||||
Usage: $THIS_FILE {start|stop|restart|status}
 | 
			
		||||
EOF
 | 
			
		||||
  exit 0
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vsntp.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								vsntp.c
									
									
									
									
									
								
							@@ -13,7 +13,7 @@
 | 
			
		||||
   GNU General Public License for more details.
 | 
			
		||||
   
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
   along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/* Filename:	vsntp.c
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user