2017-12-11 05:36
浏览 102


In go-systemd, what should be the second and third parameters for restarting the units.

// 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)
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongyao5843 2017-12-11 05:44

    From PR 203, you can see that method used/tested as:

    // Restart the unit
    reschan = make(chan string)
    _, err = conn.RestartUnit(target, "replace", reschan)
    if err != nil {
    job = <-reschan
    if job != "done" {
        t.Fatal("Job is not done:", job)

    So you have to create your own label and channel.

    From 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.

    点赞 打赏 评论

相关推荐 更多相似问题