创建符号链接以供其他Linux实例使用

时间:2012-08-29 12:41:20

标签: linux embedded symlink embedded-linux

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

TARGET文件系统是HOST文件系统中的一个文件夹。例如,TARGET通过HOST文件系统上的/ home / paul / target / rootfs中的nfs引导,其中通常是linux文件结构。

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

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

这些是后来给我带来问题的。为了在启动时自动启动,我需要在/etc/rc.d/rc0.d到rc6.d的TARGET fs中创建符号链接,这指向我的启动脚本/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指定3个东西(除了-s标志): - 链接文件名,链接的目标和创建链接的目录。我在ln手册页中没有看到这个组合。

似乎最终要么破坏HOST上的/etc/rc.d目录,要么使用仅与HOST相关的路径在TARGET fs中创建符号链接,这显然会失败(TARGET没有路径/ home /保罗/目标/根文件系统的/ etc / init.d /的MDNS)。

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

提前谢谢。

1 个答案:

答案 0 :(得分:6)

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

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