创建一个符号链接供另一个Linux实例使用



我正在使用linux开发嵌入式应用程序。我有一个HOST linux发行版(fedora)和一个TARGET linux发行版本(不确定是什么,但没关系)。

TARGET文件系统是HOST文件系统中的一个文件夹。例如,TARGET通过nfs从/home/paul/TARGET/rootfs启动HOST文件系统,该文件系统内部是常见的linux文件结构。

我正在向TARGET添加一个守护程序。我在HOST上对它进行交叉编译,并使用make-target(make-install)将文件复制到target文件系统中,并设置要运行的守护进程。我复制

  • 守护程序二进制文件
  • 一些libs&启动脚本
  • 一些符号链接(symlink),以便于后台进程的自动启动

正是后者给我带来了问题。为了在启动时自动启动,我需要在TARGET fs中创建符号链接,从/etc/rc.d/rc0.d一直到rc6.d,指向我的启动脚本/etc/rc.d/init/d/mdns.

问题是我需要在HOST机器上创建这些符号链接,但要供TARGET使用。因此,它们不能指向HOST机器看到的完整路径,它们需要指向TARGET运行时看到的路径。

例如

我需要在/home/paul/target/rootfs/etc/rc0.d中创建一个符号链接,但该符号链接需要被称为K16mdns,并指向/etc/init.d/mdns而不是/home/paul/target/rootfs/etc/init.d.mdns

如何使用ln命令执行此操作?我需要为ln指定三件事(除了-s标志):-链接文件名、链接的目标和创建链接的目录。我在ln手册页中没有看到这种组合。

它似乎总是以破坏HOST上的/etc/rc.d目录或在TARGET fs中使用仅与HOST相关的路径创建符号链接而告终,这些路径显然失败了(TARGET没有路径/home/paul/TARGET/rootfs/etc/init.d/mdns)

当我在TARGETs命令行上手动创建符号链接时,一切都很好,但显然这不是一个实用的解决方案。

提前谢谢。

符号链接时应使用相对路径,例如

cd /home/paul/target/rootfs/etc/init.d
ln -s mndns ../rc0.d/K16mdns

相关内容

最新更新