You need to enable JavaScript to run this app. 如何在desktop-entry中正确重定向命令输出生成日志文件
优惠活动
大模型
产品
解决方案
定价
更多

如何在desktop-entry中正确重定向命令输出生成日志文件

问题原因

Linux桌面条目(.desktop文件)的Exec字段默认不会通过Shell解析命令,因此>这类Shell重定向符会被直接识别为传递给prg.exe的普通参数,不会触发重定向逻辑;另外相对路径的使用也可能导致日志文件被生成到系统默认的工作目录(而非程序所在目录),无法找到。

修复方案

方案1:直接在Exec字段中调用Shell执行命令

直接修改.desktop文件的Exec行,通过bash/sh包裹完整命令,同时建议填写所有文件的绝对路径避免路径错误:

[Desktop Entry]
Name=My prg
Comment=some comment
Icon=/usr/share/pixmaps/openbox.xpm
# 替换为你实际的文件路径,2>&1可以同时将错误输出写入日志
Exec=bash -c "mono --debug /home/yourname/app/prg.exe arg1 > /home/yourname/app/log.txt 2>&1"
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None;

方案2:通过独立Shell脚本启动

如果命令逻辑比较复杂,可以单独写一个启动脚本,再让桌面条目调用脚本:

  1. 在prg.exe所在目录新建run_prg.sh,写入以下内容:
#!/bin/bash
# 先切换到程序所在目录,保证相对路径生效
cd "$(dirname "$0")"
mono --debug prg.exe arg1 > log.txt 2>&1
  1. 给脚本添加执行权限:
    chmod +x /path/to/run_prg.sh
  2. 修改.desktop的Exec字段指向脚本:
    Exec=/path/to/run_prg.sh
注意事项
  • 所有路径优先使用绝对路径,避免工作目录不匹配导致的文件找不到问题
  • 添加2>&1可以将程序运行的错误输出也写入日志文件,和终端直接执行的输出效果一致

内容的提问来源于stack exchange,提问作者Viorel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 01:45:08