我正在使用Chef 11.10部署服务器;操作系统是Amazon Linux AMI 2016.03(我们使用EC2 / OpsWorks),它使用Upstart。
在我们的配方中,我们触发服务器的启动,因为我们需要它运行来发出一些配置命令。不幸的是,如果服务器已经运行,则会失败,因为在这种情况下// Property declaration
var transferHUD = MBProgressHUD()
// Configured in viewDidLoad()
transferHUD = MBProgressHUD.init(view: self.view)
transferHUD.mode = MBProgressHUDMode.determinate
transferHUD.hide(animated: false)
// from the progressUpdated function
transferHUD.progress = Float(progress.fractionCompleted)
transferHUD.label.text = "Transferring..."
// I logged the mode and this is what it said
// print("HUD mode -- \(transferHUD.mode)")
// Output == transferHUD mode -- MBProgressHUDMode
// Here is where I show it again. I've tried a few different ways, but neither way changes the appearance
DispatchQueue.main.async {
// self.transferHUD.show(animated: true)
MBProgressHUD.showAdded(to: self.view, animated: true)
}
会返回sudo start <job>
而不是1
(即它不是幂等的)。
看起来Chef没有处理这种情况,或者没有检查服务器是否已经在运行。
解决这个问题的简单方法是什么?
答案 0 :(得分:1)