首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >systemd unit失败,并出现错误"trailing垃圾“

systemd unit失败,并出现错误"trailing垃圾“
EN

Stack Overflow用户
提问于 2015-05-26 18:33:47
回答 1查看 5.8K关注 0票数 2

我的systemd输出中有以下非常奇怪的错误:

5月26日10:21:11 ip-10-30-2-251.ec2.内部运行:/systemd1/systemd1/unit/someservice.service:13尾部垃圾,忽略。5月26日10:21:11 ip-10-30-2-251.ec2.内部systemd1: /run/fleet/units/someservice.service:14缺少'=‘。

这是在我运行以下服务时导致的:

代码语言:javascript
复制
[Unit]
Description=SOMESERVICE
Requires=docker.service  
After=docker.service

[Service]
User=core
TimeoutSec=15m
RemainAfterExit=yes
EnvironmentFile=/etc/environment
ExecStartPre=/usr/bin/docker pull micronginx
ExecStartPre=/usr/bin/docker pull microphp
ExecStart=/usr/bin/bash -c ' \
    MACHINE=`cat /etc/machine-id`; \
    etcdctl get /service/someservice/machines/$MACHINE/version; \
    if [ $? -ne 0 ]; then \
        etcdctl set /service/someservice/machines/$MACHINE/version 0; \
    fi; \
    while true; \
    do \
        MACHINE_VERSION=$(etcdctl get /service/someservice/machines/$MACHINE/version); \
        SOMESERVICE_VERSION=$(etcdctl get /service/someservice/version); \
        if [ "$MACHINE_VERSION" != "$SOMESERVICE_VERSION" ]; then \
            echo "Versions are different so starting deployment of version $SOMESERVICE_VERSION \n"; \
            etcdctl get /service/someservice/config > /tmp/someservice-$SOMESERVICE_VERSION; \
            SOMESERVICE_BASE_PORT=5000; \
            PORT=`echo $SOMESERVICE_VERSION | cut -d\'.\' -f 2`; \
            SOMESERVICE_PORT=$((SOMESERVICE_BASE_PORT+PORT)); \
            /usr/bin/docker pull someservice:$SOMESERVICE_VERSION; \
            /usr/bin/docker create -v /var/www --name someservice_$SOMESERVICE_VERSION someservice:$SOMESERVICE_VERSION; \
            /usr/bin/docker run --rm --name microphp_someservice_$SOMESERVICE_VERSION --volumes-from someservice_$SOMESERVICE_VERSION --env-file /tmp/someservice-$SOMESERVICE_VERSION microphp & \
            /usr/bin/docker run -d --name micronginx_someservice_$SOMESERVICE_VERSION --volumes-from someservice_$SOMESERVICE_VERSION -p $SOMESERVICE_PORT:80 --link=microphp_someservice_$SOMESERVICE_VERSION:php-fpm micronginx; \
            if [ $? -eq 0 ]; then \
                echo "Setting machine version in etcd to $SOMESERVICE_VERSION"; \
                etcdctl set /service/someservice/machines/$MACHINE/version "$SOMESERVICE_VERSION"; \
                sleep 1; \
                echo "New machine version is visible in etcd as $(etcdctl get /service/someservice/machines/$MACHINE/version)"; \
            fi; \
            rm -f /tmp/someservice-$SOMESERVICE_VERSION; \
        fi; \
        echo "sleep for 10 seconds and recheck \n"; \
        sleep 10; \
    done; '

[X-Fleet]
Global=true

您是否知道为什么或如何排除此错误,或者可能导致此错误的原因?

-S。

EN

回答 1

Stack Overflow用户

发布于 2015-05-26 21:45:53

我想我在什么地方听说过服务有一个最大行长度。你有没有试过把那个巨大的命令放到脚本中,然后直接执行这个脚本?如果这样做不起作用,您可以创建几个ExecPre语句,然后一次构造脚本的一节。然后你的执行人员就可以运行这个脚本了。如果你使用云配置,你可以使用'write_file‘命令将你的脚本写到目标机器上。

github issue max length

2048是一行的最大长度(反引号被消耗掉,您的命令是一个巨大的行)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30456047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档