gpt4 book ai didi

go - 重启单元文件时模式和 channel 应该是什么

转载 作者:IT王子 更新时间:2023-10-29 01:38:23 32 4
gpt4 key购买 nike

go-systemd ,重启设备的第二个和第三个参数应该是什么。

// RestartUnit restarts a service.  If a service is restarted that isn't
// running it will be started.
func (c *Conn) RestartUnit(name string, mode string, ch chan<- string) (int, error) {
return c.startJob(ch, "org.freedesktop.systemd1.Manager.RestartUnit", name, mode)
}

最佳答案

PR 203 中,您可以将 that method used/tested 视为:

// Restart the unit
reschan = make(chan string)
_, err = conn.RestartUnit(target, "replace", reschan)
if err != nil {
t.Fatal(err)
}

job = <-reschan
if job != "done" {
t.Fatal("Job is not done:", job)
}

因此您必须创建自己的标签和 channel 。

来自 dbus/methods.go

// Takes the unit to activate, plus a **mode string**. 

The mode needs to be one of:

  • replace (the call will start the unit and its dependencies, possibly replacing already queued jobs that conflict with this),
  • fail (the call will start the unit and its dependencies, but will fail if this would change an already queued job),
  • isolate (the call will start the unit in question and terminate all units that aren't dependencies of it),
  • ignore-dependencies (it will start a unit but ignore all its dependencies),
  • ignore-requirements (it will start a unit but only ignore the requirement dependencies).

It is not recommended to make use of the latter two options.

关于go - 重启单元文件时模式和 channel 应该是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47747001/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com