feat: support pid file.

This commit is contained in:
Bo-Yi Wu 2017-01-09 19:54:57 +08:00
parent f4feeecc3a
commit 9f575986d8
2 changed files with 33 additions and 0 deletions

View file

@ -392,6 +392,7 @@ var (
Cfg *ini.File
CustomPath string // Custom directory path
CustomConf string
CustomPID string
ProdMode bool
RunUser string
IsWindows bool
@ -471,6 +472,22 @@ func IsRunUserMatchCurrentUser(runUser string) (string, bool) {
return currentUser, runUser == currentUser
}
func createPIDFile(pidPath string) {
currentPid := os.Getpid()
if err := os.MkdirAll(filepath.Dir(pidPath), os.ModePerm); err != nil {
log.Fatal(4, "Can't create PID folder on %s", err)
}
file, err := os.Create(pidPath)
if err != nil {
log.Fatal(4, "Can't create PID file: %v", err)
}
defer file.Close()
if _, err := file.WriteString(strconv.FormatInt(int64(currentPid), 10)); err != nil {
log.Fatal(4, "Can'write PID information on %s", err)
}
}
// NewContext initializes configuration context.
// NOTE: do not print any log except error.
func NewContext() {
@ -498,6 +515,12 @@ please consider changing to GITEA_CUSTOM`)
}
}
if len(CustomPID) == 0 {
CustomPID = CustomPath + "/run/app.pid"
}
createPIDFile(CustomPID)
if len(CustomConf) == 0 {
CustomConf = CustomPath + "/conf/app.ini"
}