我正在尝试使用systemd服务配置docker exec,但是它总是失败。

  • 直接在终端(ssh)中执行时,该命令运行正常。

  • 问:是否可以那样运行,还是需要在bash脚本(.sh)中使用?

    /etc/systemd/system/laravel.service
    [Unit]
    Description=Laravel Queue
    After=docker.service
    Requires=docker.service
    
    [Service]
    Type=simple
    ExecStart="/usr/bin/docker exec -it my_docker /usr/bin/php artisan queue:work --env=production --tries 2 --timeout 60"
    User=ubuntu
    Group=ubuntu
    KillMode=process
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    sudo服务vetspay状态
    jan 05 03:04:39 legolas systemd[1]: Started Laravel Queue.
    jan 05 03:04:39 legolas systemd[1]: laravel.service: Main process exited, code=exited, status=216/GROUP
    jan 05 03:04:39 legolas systemd[1]: laravel.service: Unit entered failed state.
    jan 05 03:04:39 legolas systemd[1]: laravel.service: Failed with result 'exit-code'.
    

    最佳答案

    错误(输入设备不是...)是由以下行引起的: -it ExecStart="/usr/bin/docker exec -it my_docker /usr/bin/php artisan queue:work --env=production --tries 2 --timeout 60"User=ubuntu,将其删除,当docker exec在bash文件中时没有必要

    关于docker - 在systemd服务中运行 'docker exec'(代码为已退出,状态为216/组),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48107603/

    10-16 16:55
    查看更多