mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	feat: support pid file.
This commit is contained in:
		@@ -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"
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user