以守护进程模式启动Apache mesos

时间:2017-08-09 21:14:00

标签: ansible mesos

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

我现在通过ansible开始使用如下所示的介质:

/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启动它时,它似乎才起作用,不会导致进程继续运行。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

代理配置示例。 对于我使用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 "$1" 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