1

我有一个非常简单的新贵配置来维护 yas3fs 挂载。

start on filesystem
stop on runlevel [!2345]

respawn
kill timeout 15
oom never
expect fork

script
    . /etc/s3.env
    export AWS_ACCESS_KEY_ID
    export AWS_SECRET_ACCESS_KEY
    exec /opt/yas3fs/yas3fs.py /mnt/something --url=s3://something --cache-path=/mnt/s3fs-cache --mp-size=5120 --mp-num=8
end script'

发生的情况是我运行了两个 yas3fs.py 副本。一个似乎正确安装了 s3 存储桶,但另一个被暴发户不断重生(可能是因为另一个正在运行而出错)。

如果我抛出“预期分叉”,则工作永远不会正确开始。我只是希望能够让这个简单的挂载能够安全地重新启动、停止等作为新贵的工作。想法?

4

1 回答 1

1

我不是新贵专家,但这个脚本应该可以工作:

start on (filesystem and net-device-up IFACE=eth0)
stop on runlevel [!2345]

env S3URL="s3://BUCKET[/PREFIX]"
env MOUNTPOINT="/SOME/PATH"

respawn
kill timeout 15
oom never

script
    MOUNTED=$(mount|grep " $MOUNTPOINT "|wc -l)
    if [ $MOUNTED = "1" ]; then
        umount "$MOUNTPOINT"
    fi
    exec /opt/yas3fs/yas3fs.py "$MOUNTPOINT" --url="$S3URL" --mp-size=5120 --mp-num=8 -f
end script

pre-stop script
    umount "$MOUNTPOINT"
end script

诀窍是使用“-f”选项将 yas3fs 留在前台,否则似乎有太多分叉需要管理。

如果 yas3fs 以某种错误的方式终止(例如“kill -9”),我添加了一个检查以清理(即卸载)安装点。

于 2013-10-11T11:15:54.247 回答