gpt4 book ai didi

系统脚本 : Assignment outside of section; Missing '='

转载 作者:行者123 更新时间:2023-12-04 01:47:59 26 4
gpt4 key购买 nike

我有以下(匿名的)systemd 脚本,名为 tomcat-autostart.service,存储在“/usr/lib/systemd/system/tomcat-autostart.service”中

[Unit]
Description=Tomcat Autostart Script
Requires=var-www-projects.mount
After=var-www-projects.mount

[Service]
Type=forking
ExecStart=/usr/bin/tomcat-autostart start
ExecStop=/usr/bin/tomcat-autostart stop

[Install]
WantedBy=multi-user.target

运行后

sudo systemctl daemon-reload
sudo systemctl enable tomcat-autostart.service

我收到错误消息:

Failed to execute operation: Bad message

我还在/var/log/messages 中得到以下输出

Feb 17 11:29:53 cheese systemd: [/usr/lib/systemd/system/tomcat-autostart.service:1] Assignment outside of section. Ignoring.
Feb 17 11:29:53 cheese systemd: tomcat-autostart.service lacks both ExecStart= and ExecStop= setting. Refusing.
Feb 17 11:29:53 cheese systemd: [/usr/lib/systemd/system/tomcat-autostart.service:1] Missing '='.
Feb 17 11:29:53 cheese systemd: [/usr/lib/systemd/system/tomcat-autostart.service:1] Missing '='.

我让它工作了一段时间,然后我在“[Unit]”行上方添加了一些注释,它停止工作。然后我删除了评论,并且可能无意中修改了脚本中的其他内容,之后我无法让它再次工作。

它似乎很喜欢它自己的矛盾。第一条错误消息说第一行有一个赋值 ('[Unit]'),第三条错误消息说赋值缺少一个 '=' 符号。所以基本上,'[Unit]' 是一个赋值,除了它不是因为它缺少一个 '=' 符号。

搜索此问题已确定第二条错误消息是其他错误消息的直接原因。因为它忽略了节标题,所以它从不读取 ExecStart 和 ExecStop 声明。如果我能解决第一个和第三个错误消息,我应该可以

我的脚本的实际问题是什么?运行 'sudo/usr/bin/tomcat-autostart' 按预期成功,互联网上出现此错误消息的最常见原因是脚本未使用绝对路径(在这种情况下我会这样做)

最佳答案

我已经解决了这个问题。事实证明,当我添加注释时,文件的编码发生了变化(将文件从 utf-8 编码转换为 utf-16 编码)。我认为 systemd 不支持 utf-16,并将其解释为 ASCII(或其他)。将编码改回 UTF-8 允许自动启动脚本重新开始工作。

关于系统脚本 : Assignment outside of section; Missing '=' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42286099/

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