dream752614590 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 {
        t.Fatal(err)
    }
    
    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?