|
|
@@ -26,7 +26,7 @@ func SyncNTPTime() error {
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
- if err := setSystemTime(t); err != nil {
|
|
|
+ if err := SetSystemTime(t); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
return nil
|
|
|
@@ -84,7 +84,12 @@ func getAccurateTime(servers []string, timeout time.Duration) (time.Time, error)
|
|
|
return bestTimes[0], nil
|
|
|
}
|
|
|
|
|
|
-func setSystemTime(t time.Time) error {
|
|
|
+var setTimeMu sync.Mutex // 保证调用 SetSystemTime() 函数的线程安全
|
|
|
+
|
|
|
+func SetSystemTime(t time.Time) error {
|
|
|
+ setTimeMu.Lock()
|
|
|
+ defer setTimeMu.Unlock()
|
|
|
+
|
|
|
cmd := exec.Command("date", "-s", t.Local().Format("2006-01-02 15:04:05"))
|
|
|
output, err := cmd.CombinedOutput()
|
|
|
if err != nil {
|