以守护进程模式启动 Apache mesos

Starting Apache mesos in daemon mode

有谁知道mesos 1.3.0 的初始化脚本在哪里? (我在 ubuntu 16.0 上从源代码构建了 mesos)

我正在通过 ansible 像下面这样启动 mesos:

/opt/mesos/build/bin/mesos-master.sh --ip=`hostname -i` --work_dir=/var/lib/mesos

然而,当 Ansible 与终端断开连接时,mesos 进程就死掉了。因此,这种启动 mesos 的方式似乎与远程自动安装不兼容。

我已经尝试在命令前加上 nohup,并在这个脚本中将其作为背景(无济于事):

#!/bin/bash
# Start the mesos slave 
# Start Mesos master (ensure work directory exists and has proper  permissions).
 nohup /opt/mesos/build/bin/mesos-agent.sh --master=`cat    /tmp/master.ip`:5050 --work_dir=/var/lib/mesos &```

它似乎只在我手动 运行 时工作,登录到终端,并通过 ansible 启动它不会导致进程停留 运行ning。

Mesos 不附带守护进程初始化脚本。需要自己准备。

你可以看看mesosphere/mesos-deb-packaging

例如 systemd 脚本可能如下所示:

[Unit]
Description=Mesos Master
After=network.target
Wants=network.target

[Service]
ExecStart=/usr/bin/mesos-init-wrapper master
Restart=always
RestartSec=20
LimitNOFILE=16384

[Install]
WantedBy=multi-user.target

代理配置示例。 对于使用 Ubuntu/init.d 的我,以最简单的形式进行了以下操作,确保有优化空间:

创建一个可执行文件,/etc/init.d/mesos

使用以下内容:

#! /bin/sh

### BEGIN INIT INFO
# Provides:             mesos
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Apache Mesos 1.5.0
### END INIT INFO

set -e

case "" in
  start)
       /opt/mesos/bin/mesos-agent.sh --master=<YOUR_MASTER_HOST>:5050 --work_dir=/var/lib/mesos &  > /var/log/mesos 2>&1
       ;;
esac

exit 0

开始于: service mesos start