gpt4 book ai didi

linux - 我怎样才能用 yas3fs 做一份 Upstart 的工作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:57 26 4
gpt4 key购买 nike

我有一个非常简单的 upstart 配置来维护 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 存储桶,但另一个由 upstart 不断重生(可能是因为另一个正在运行而出错)。

如果我输入“expect fork”,作业永远不会正确启动。我只想让这个简单的挂载能够安全地重新启动、停止等,作为一项 Upstart 工作。想法?

最佳答案

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

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”),我添加了一个检查来清理(即卸载)挂载点。

关于linux - 我怎样才能用 yas3fs 做一份 Upstart 的工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19172783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com