【问题标题】:Does windows start-job is session basedWindows 启动作业是否基于会话
【发布时间】:2016-04-26 08:42:06
【问题描述】:

当我将启动作业配置为部分 windows ec2 用户数据时

start-job -ScriptBlock {consul agent -data-dir C:\\consul\\logs -config-dir C:\\consul\\conf.d\\}
Start-Sleep -s 30

在实例状态可用后不久,我登录机器并检查服务是否在后台运行,使用以下命令

Jobs

结果显示没有作业正在运行

我的问题

  1. 启动作业是否基于会话
  2. 如何使启动作业在用户数据执行完成后仍能正常工作
  3. 将收到工作职能帮助解决此问题

【问题讨论】:

  • Jobs 不是 PowerShell 命令。试试Get-Job。 “即使在用户数据执行完成后也让启动作业工作”是什么意思?工作不是服务。
  • 如何让作业作为服务运行
  • “工作不是服务”的哪一部分需要更多解释?请退后一步,描述您要解决的实际问题,而不是您认为的解决方案。
  • 我需要命令 consul agent -data-dir C:\\consul\\logs -config-dir C:\\consul\\conf.d\\ 作为服务运行,在哪个命令应该作为服务运行 24/7 你有任何原型来运行它作为服务

标签: powershell amazon-ec2 user-data windows2012


【解决方案1】:

如果您需要将 Consul 代理作为服务运行,请尝试使用 sc 命令行实用程序创建实际服务:

sc.exe create <name> 'binPath= <commandline>' start= <starttype>

请注意,= 字符是选项名称的一部分,因此后面必须有空格,但前面不能有空格。

在您的情况下,命令可能看起来像这样:

sc.exe create ConsulAgent 'binPath= C:\consul\consul.exe agent -data-dir C:\consul\logs -config-dir C:\consul\conf.d' start= auto

如果命令行包含带有空格的路径,您需要将这些路径放在双引号中。

可以这样删除服务:

sc.exe delete ConsulAgent

【讨论】:

    猜你喜欢
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多