Linux中的桌面图标

时间:2017-09-25 16:31:11

标签: python linux bash shell desktop

我正在运行Linux,特别是一个首先检测射频频谱的项目,然后是第二个发送前导码的文件,第三个发送一些最佳频率的数据。这是通过python和sh文件的混合实现的,这些文件都是chmod + x。

当我通过cli运行第一个文件时,整个过程运行良好,但是,我现在尝试创建一个桌面图标,以便于使用和演示,类似于下面的内容:

<!DOCTYPE html>
<html>
<head>
        <meta charset="UTF-8" />
        <title>React App</title>
        <script src="https://unpkg.com/react@latest/dist/react.js"></script>
        <script src="https://unpkg.com/react-dom@latest/dist/react-dom.js"></script>
        <script src="https://unpkg.com/babel-standalone@latest/babel.min.js"></script>
        <script type="text/babel">
                var ex = <h1>It worked!</h1>;
                ReactDOM.render(
                        ex,
                        document.getElementById('root')
                );
        </script>
</head>
<body>
        <div id="root"/>
</body>
</html>

当我现在使用桌面图标启动该过程时,它只会打开第一个python文件。所有链接仍然存在,但它们不会运行。有什么重要的东西可能会丢失吗?

1 个答案:

答案 0 :(得分:0)

我认为这是对.desktop文件的一种非常规的使用。通常,您指定可执行文件的绝对路径,或仅指定名称,希望$ PATH可以找到它。我不认为有任何保证,调用桌面图标会设置任何特定的工作目录,所以我猜你的应用程序的各个部分都找不到彼此。

在Linux中解决这类问题的常用方法是,当一个应用程序必须调用另一个应用程序时,确保所有部分都在$ PATH中。由于这通常是不切实际的,一种常见的方法是让第一个应用程序部分使用/ proc / self / exe上的readlink()来查找自己的文件系统位置,然后解析它以找出其余位的位置。通常它们位于同一目录中。因此,我们通过删除第一个可执行文件的完整路径的最终文件名部分并替换新文件名来找到绝对路径。

有类似的方法可以做同样的事情,但都涉及使用绝对的,已知的路径名,而不是依靠桌面来做正确的事情。桌面有时会做正确的事情,但它不会是便携式的。