| package cmd | |
| import ( | |
| "os" | |
| "path/filepath" | |
| "strconv" | |
| "github.com/alist-org/alist/v3/internal/bootstrap" | |
| "github.com/alist-org/alist/v3/internal/bootstrap/data" | |
| "github.com/alist-org/alist/v3/internal/db" | |
| "github.com/alist-org/alist/v3/pkg/utils" | |
| log "github.com/sirupsen/logrus" | |
| ) | |
| func Init() { | |
| bootstrap.InitConfig() | |
| bootstrap.Log() | |
| bootstrap.InitDB() | |
| data.InitData() | |
| bootstrap.InitIndex() | |
| } | |
| func Release() { | |
| db.Close() | |
| } | |
| var pid = -1 | |
| var pidFile string | |
| func initDaemon() { | |
| ex, err := os.Executable() | |
| if err != nil { | |
| log.Fatal(err) | |
| } | |
| exPath := filepath.Dir(ex) | |
| _ = os.MkdirAll(filepath.Join(exPath, "daemon"), 0700) | |
| pidFile = filepath.Join(exPath, "daemon/pid") | |
| if utils.Exists(pidFile) { | |
| bytes, err := os.ReadFile(pidFile) | |
| if err != nil { | |
| log.Fatal("failed to read pid file", err) | |
| } | |
| id, err := strconv.Atoi(string(bytes)) | |
| if err != nil { | |
| log.Fatal("failed to parse pid data", err) | |
| } | |
| pid = id | |
| } | |
| } | |