mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-11-22 04:55:33 +03:00
Pull request: home: imp logs
Closes #3869. Squashed commit of the following: commit 8ee0625ea2ac1f6615ad56c819fbb0c4974767e5 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Nov 23 20:33:14 2021 +0300 home: imp logs
This commit is contained in:
parent
51f11d2f8e
commit
322944073e
1 changed files with 26 additions and 27 deletions
|
@ -97,7 +97,7 @@ func svcAction(s service.Service, action string) (err error) {
|
|||
// exist, find our PID using 'ps' command.
|
||||
func sendSigReload() {
|
||||
if runtime.GOOS == "windows" {
|
||||
log.Error("not implemented on windows")
|
||||
log.Error("service: not implemented on windows")
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -107,25 +107,24 @@ func sendSigReload() {
|
|||
data, err := os.ReadFile(pidfile)
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
if pid, err = aghos.PIDByCommand(serviceName, os.Getpid()); err != nil {
|
||||
log.Error("finding AdGuardHome process: %s", err)
|
||||
log.Error("service: finding AdGuardHome process: %s", err)
|
||||
|
||||
return
|
||||
}
|
||||
} else if err != nil {
|
||||
log.Error("reading pid file %s: %s", pidfile, err)
|
||||
log.Error("service: reading pid file %s: %s", pidfile, err)
|
||||
|
||||
return
|
||||
|
||||
} else {
|
||||
parts := strings.SplitN(string(data), "\n", 2)
|
||||
if len(parts) == 0 {
|
||||
log.Error("can't read pid file %s: bad value", pidfile)
|
||||
log.Error("service: parsing pid file %s: bad value", pidfile)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if pid, err = strconv.Atoi(strings.TrimSpace(parts[0])); err != nil {
|
||||
log.Error("can't read pid file %s: %s", pidfile, err)
|
||||
log.Error("service: parsing pid from file %s: %s", pidfile, err)
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -133,18 +132,18 @@ func sendSigReload() {
|
|||
|
||||
var proc *os.Process
|
||||
if proc, err = os.FindProcess(pid); err != nil {
|
||||
log.Error("can't send signal to pid %d: %s", pid, err)
|
||||
log.Error("service: finding process for pid %d: %s", pid, err)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if err = proc.Signal(syscall.SIGHUP); err != nil {
|
||||
log.Error("Can't send signal to pid %d: %s", pid, err)
|
||||
log.Error("service: sending signal HUP to pid %d: %s", pid, err)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
log.Debug("sent signal to PID %d", pid)
|
||||
log.Debug("service: sent signal to pid %d", pid)
|
||||
}
|
||||
|
||||
// handleServiceControlAction one of the possible control actions:
|
||||
|
@ -163,7 +162,7 @@ func handleServiceControlAction(opts options, clientBuildFS fs.FS) {
|
|||
chooseSystem()
|
||||
|
||||
action := opts.serviceControlAction
|
||||
log.Printf("Service control action: %s", action)
|
||||
log.Printf("service: control action: %s", action)
|
||||
|
||||
if action == "reload" {
|
||||
sendSigReload()
|
||||
|
@ -173,7 +172,7 @@ func handleServiceControlAction(opts options, clientBuildFS fs.FS) {
|
|||
|
||||
pwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
log.Fatal("Unable to find the path to the current directory")
|
||||
log.Fatalf("service: getting current directory: %s", err)
|
||||
}
|
||||
|
||||
runOpts := opts
|
||||
|
@ -193,7 +192,7 @@ func handleServiceControlAction(opts options, clientBuildFS fs.FS) {
|
|||
}
|
||||
var s service.Service
|
||||
if s, err = service.New(prg, svcConfig); err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatalf("service: initializing service: %s", err)
|
||||
}
|
||||
|
||||
switch action {
|
||||
|
@ -201,7 +200,7 @@ func handleServiceControlAction(opts options, clientBuildFS fs.FS) {
|
|||
handleServiceStatusCommand(s)
|
||||
case "run":
|
||||
if err = s.Run(); err != nil {
|
||||
log.Fatalf("Failed to run service: %s", err)
|
||||
log.Fatalf("service: failed to run service: %s", err)
|
||||
}
|
||||
case "install":
|
||||
initConfigFilename(opts)
|
||||
|
@ -211,27 +210,27 @@ func handleServiceControlAction(opts options, clientBuildFS fs.FS) {
|
|||
handleServiceUninstallCommand(s)
|
||||
default:
|
||||
if err = svcAction(s, action); err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatalf("service: executing action %q: %s", action, err)
|
||||
}
|
||||
}
|
||||
|
||||
log.Printf("action %s has been done successfully on %s", action, service.ChosenSystem())
|
||||
log.Printf("service: action %s has been done successfully on %s", action, service.ChosenSystem())
|
||||
}
|
||||
|
||||
// handleServiceStatusCommand handles service "status" command.
|
||||
func handleServiceStatusCommand(s service.Service) {
|
||||
status, errSt := svcStatus(s)
|
||||
if errSt != nil {
|
||||
log.Fatalf("failed to get service status: %s", errSt)
|
||||
log.Fatalf("service: failed to get service status: %s", errSt)
|
||||
}
|
||||
|
||||
switch status {
|
||||
case service.StatusUnknown:
|
||||
log.Printf("Service status is unknown")
|
||||
log.Printf("service: status is unknown")
|
||||
case service.StatusStopped:
|
||||
log.Printf("Service is stopped")
|
||||
log.Printf("service: stopped")
|
||||
case service.StatusRunning:
|
||||
log.Printf("Service is running")
|
||||
log.Printf("service: running")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -239,7 +238,7 @@ func handleServiceStatusCommand(s service.Service) {
|
|||
func handleServiceInstallCommand(s service.Service) {
|
||||
err := svcAction(s, "install")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatalf("service: executing action %q: %s", "install", err)
|
||||
}
|
||||
|
||||
if aghos.IsOpenWrt() {
|
||||
|
@ -248,16 +247,16 @@ func handleServiceInstallCommand(s service.Service) {
|
|||
// startup.
|
||||
_, err = runInitdCommand("enable")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatalf("service: running init enable: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Start automatically after install.
|
||||
err = svcAction(s, "start")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to start the service: %s", err)
|
||||
log.Fatalf("service: starting: %s", err)
|
||||
}
|
||||
log.Printf("Service has been started")
|
||||
log.Printf("service: started")
|
||||
|
||||
if detectFirstRun() {
|
||||
log.Printf(`Almost ready!
|
||||
|
@ -276,24 +275,24 @@ func handleServiceUninstallCommand(s service.Service) {
|
|||
// as it will remove the symlink
|
||||
_, err := runInitdCommand("disable")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatalf("service: running init disable: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
if err := svcAction(s, "uninstall"); err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatalf("service: executing action %q: %s", "uninstall", err)
|
||||
}
|
||||
|
||||
if runtime.GOOS == "darwin" {
|
||||
// Remove log files on cleanup and log errors.
|
||||
err := os.Remove(launchdStdoutPath)
|
||||
if err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||
log.Printf("removing stdout file: %s", err)
|
||||
log.Info("service: warning: removing stdout file: %s", err)
|
||||
}
|
||||
|
||||
err = os.Remove(launchdStderrPath)
|
||||
if err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||
log.Printf("removing stderr file: %s", err)
|
||||
log.Info("service: warning: removing stderr file: %s", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue