📌  相关文章
📜  lib systemd system gammu-smsd.service:9: 既不是有效的可执行文件名也不是绝对路径:${CMAKE_INSTALL_FULL_BINDIR} gammu-smsd (1)

📅  最后修改于: 2023-12-03 15:17:19.208000             🧑  作者: Mango

介绍

本文主要介绍 systemd 的一个问题,即在使用 gammu-smsd 时,启动 gammu-smsd.service 时出现以下错误:

lib systemd system gammu-smsd.service:9: 既不是有效的可执行文件名也不是绝对路径:${CMAKE_INSTALL_FULL_BINDIR} gammu-smsd

本文将围绕此错误展开,解释其原因,并提供解决方案。

问题分析

首先,我们来看一下这个错误的具体内容:

既不是有效的可执行文件名也不是绝对路径:${CMAKE_INSTALL_FULL_BINDIR} gammu-smsd

这个错误的意思是,系统找不到可执行文件 gammu-smsd。而该文件路径 ${CMAKE_INSTALL_FULL_BINDIR} gammu-smsd 则应该是 gammu-smsd 的有效路径。出现这个问题,主要原因是没有正确设置该文件的路径或其路径被覆盖。

那么,问题的根源何在呢?最常见的问题就是,程序员在构建软件包时,忘记将 gammu-smsd 可执行文件正确地添加到安装路径中,或者其他任何原因导致该文件丢失。

解决方案

为了解决这个问题,您需要手动编辑 gammu-smsd.service 文件,并将该文件路径替换为 gammu-smsd 可执行文件的绝对路径。

具体来说,您需要执行以下步骤:

  1. 找到 gammu-smsd.service 文件的位置。该文件通常位于 /etc/systemd/system/ 目录中。

  2. 打开 gammu-smsd.service 文件。您可以使用文本编辑器或命令行界面打开该文件。

  3. 找到 ExecStart 行。该行应该类似于下面的示例:

    ExecStart=${CMAKE_INSTALL_FULL_BINDIR} gammu-smsd -c /etc/gammu-smsdrc
    
  4. 将 ${CMAKE_INSTALL_FULL_BINDIR} 更改为 gammu-smsd 可执行文件的完整路径。例如:

    ExecStart=/usr/bin/gammu-smsd -c /etc/gammu-smsdrc
    
  5. 保存 gammu-smsd.service 文件并关闭编辑器。

  6. 重新加载 systemd daemon: sudo systemctl daemon-reload

  7. 启动 gammu-smsd 服务: sudo systemctl start gammu-smsd.service

如果一切顺利,您应该能够成功启动 gammu-smsd 服务并正常运行了。

总结

本文介绍了 systemd 启动 gammu-smsd 服务时出现的错误,分析了这个错误的原因,并提供了解决问题的步骤。程序员在构建软件包时,请务必注意检查 gammu-smsd 可执行文件的路径是否正确,以避免这种问题的发生。