如何在不跨越多个作业的情况下在mesos中运行nohup命令

时间:2018-04-24 07:22:07

标签: marathon mesosphere

我正在尝试使用nohup命令尝试在后台运行mesos中的一个脚本文件,但不幸的是问题是脚本执行成功但是相同的脚本跨越多个作业并在后台运行所有作业。

如何处理跨越多个作业的作业,在马拉松中缩放应用程序后限制单个作业。

**marathon_sample.json**

{
  "id": "/dps/sample",
  "cmd": "nohup sh /tmp/marathon_test/marathon_sample.sh & >> /tmp/marathon_test/marathon_test.log",
  "cpus": 0.1,
  "mem": 512,
  "disk": 1,
  "instances": 0,
  "container": null,
  "constraints": [
    [
      "hostname",
      "LIKE",
      "(lltws0gbeot.sdi.corp.bankofamerica.com)"
    ]
  ],
  "portDefinitions": [
    {
      "port": 0,
      "protocol": "tcp",
      "name": null,
      "labels": null
    }
  ]
}

**marathon_sample.sh**

#! /bin/sh
while [ true ] ;
do
echo 'Hello Marathon test application'
sleep 5 ;
done

任何人都可以帮我在mesos中运行“marathon_sample.sh”作为后台工作。

1 个答案:

答案 0 :(得分:1)

马拉松赛跑nohup的重点是什么? Marathon(相应的Mesos)应该是" init系统"负责保持你的工作生机勃勃。您应该将命令简化为:

"cmd": "sh /tmp/marathon_test/marathon_sample.sh",

来自stdoutstderr的日志会自动存储到任务的工作区中。没有必要写出你的工作用途。