ubuntu如何找出程序安装方式及如何卸载干净

前一段时间安装了Linux版本的CAD,在Linux有原生支持的了,而且下载直接安装即可使用,不过都有收费功能。所以这里带有一个程序叫加密狗程序的东西。senseshield(深思 / 深盾) 是北京深盾科技(原深思洛克)的软件加密与授权许可服务,核心用途是给商用软件做加密锁 / 授权认证,常见于工程、设计、造价类软件(如广联达、鲁班、部分工业软件CAD等)。

  • 服务名:senseshield.service(Linux)
  • 进程:sscltsscfg
  • 驱动:sprotect.sys(Windows)
  • 功能:管理硬件加密锁(U 盘锁)、云许可、软许可,软件运行前必须连此服务验授权。

起因是senseshield.service 启动超时故障排查

5月 08 09:54:11 Mt systemd[1]: senseshield.service: start-pre operation timed out. Terminating.
5月 08 09:54:11 Mt systemd[1]: senseshield.service: Control process exited, code=killed, status=15/TERM
5月 08 09:54:11 Mt systemd[1]: senseshield.service: Failed with result 'timeout'.
5月 08 09:54:11 Mt systemd[1]: Failed to start senseshield.
5月 08 09:54:11 Mt systemd[1]: senseshield.service: Scheduled restart job, restart counter is at 1384.
5月 08 09:54:11 Mt systemd[1]: Stopped senseshield.
5月 08 09:54:11 Mt systemd[1]: Starting senseshield...

从日志中看到核心问题:senseshield.service 的 StartPre 操作超时systemd 强制终止了服务,导致启动失败并无限重启(重启次数已达 1384 次)。

因为这个东西我不使用,所以直接要清除它了。但是它安装在哪里,我不知道因为安装那个CAD软件时自动安装的。所以接下来要怎么找到这个程序及相关的文件一并清除。

一、最准命令(直接显示文件真实路径)

如果你知道这个程序有一个服务名称叫senseshield,那么可以这样操作

systemctl cat senseshield.service

运行后第一行就会显示:

# /lib/systemd/system/senseshield.service

这就是它真正的保存位置,同时文件中还记录了程序执行文件在哪里ExecStart=/opt/senseshield/senseshield,安装目录在这位置。


二、直接查找文件位置(万能命令)

同样要知道一个服务名称或者至少记得前缀啊,直接整个系统搜索。

find / -name "senseshield.service" 2>/dev/null

它会直接输出类似:

/usr/lib/systemd/system/senseshield.service
/opt/senseshield/config/senseshield.service

三、systemd 服务默认存放位置

Linux 的 .service 文件一般只会在这 3 个地方

  1. /etc/systemd/system/(最常见,用户自定义服务)
  2. /usr/lib/systemd/system/(软件安装的服务)
  3. /run/systemd/system/(临时服务)

这个 senseshield 就在这个位置:

/etc/systemd/system/senseshield.service

四、开始清理文件

既然已经找到文件了,那么就可以执行卸载,清除等操作了。

在 Linux 里判断一个服务 / 程序是怎么装的,主要看 3 种来源:

  • apt /dpkg 安装(系统包管理器)
  • 官方.run/ 脚本安装(软件自带安装器)
  • 手动解压、手动建 service(绿色 / 手动部署)

1. 先查是不是 apt /dpkg 装的(最常见)

dpkg -S senseshield


sudo dpkg --remove 程序包名                           #如果是这样方式安装,可这样卸载
  • 如果输出类似:plaintextsenseshield: /usr/lib/systemd/system/senseshield.service是通过 deb 包 /apt 安装的
  • 如果提示:plaintextdpkg-query: no path found matching pattern不是系统包安装,是脚本 / 手动装的

2. 查服务文件来自哪个包

这其实就是命令结合一起使用,也是直接读取senseshield.service 文件内容的

dpkg -S $(systemctl cat senseshield.service | head -1 | awk '{print $2}')

有结果 → apt/deb 安装

没结果 → 非系统包安装


3. 查安装目录痕迹

大部分软件的安装目录在以下两个位置,通过目录搜索相关的字符寻找

ls /opt | grep -i sense
ls /usr/local | grep -i sense
  • 出现在 /opt/SenseShield/ 这类目录→ 大概率是软件自带安装脚本(.run 或 .sh)安装很多加密锁、商业软件都是这种。

4. 看服务文件内容判断安装方式

因为系统软件的配置有一定规范的,所以可以通过服务文件里的可执行文件程序来判断

systemctl cat senseshield.service

重点看:

  • ExecStart 路径在 /opt/xxx/usr/local/xxx脚本 /.run 安装
  • 路径在 /usr/bin/usr/sbin→ 大概率 apt/deb 安装
  • 里面路径乱七八糟、甚至有你手动建的目录→ 手动部署

5. 查系统安装日志

grep -i sense /var/log/dpkg.log
grep -i sense /var/log/apt/history.log

有记录 → apt 安装

没有 → 脚本 / 手动安装


总结

  1. dpkg -S 能查到→ apt /deb 包安装
  2. dpkg 查不到,但 /opt 有目录→ 软件自带 .run/ 脚本安装
  3. dpkg 查不到,/opt 也没有→ 手动解压 + 手动建 service

因为上面几种方式找过了,最后确认是程序自带.run解压安装的,所以直接删除/opt/senseshield/及上面提到的senseshield.service文件即可。

sudo rm -rf /opt/senseshield/
sudo rm -rf /usr/lib/systemd/system/senseshield.service

在执行rm -rf 命令时一定要认真核对,避免操作不当失误了。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。
       本系列的一部分

ubuntu桌面

Post 38 of 38

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress