【问题标题】:LD_PRELOAD which program is targetLD_PRELOAD 哪个程序是目标
【发布时间】:2014-10-03 18:04:53
【问题描述】:

有没有办法确定哪个程序是 LD_PRELOAD 的目标?

LD_PRELOAD=/path/to/libstuff.so ./stuff <args>

就像在 C/C++ 中构建 libstuff 库以及预加载它时一样,有没有办法确定目标程序是 stuff

如果文件是stuff,那么这是一种安全的方法,然后做一些事情,否则就让lib死掉。

如果不建议这样做

问的原因是我得不到

HOME=$WORK_PATH start-stop-daemon --start --chuid servers --quiet --background --nicelevel -1 --pidfile $PIDFILE --make-pidfile --exec $WORK_PATH/program <args>

使用LD_PRELOAD 定位program 而不是start-stop-daemon

我不知道这是否允许像这样偏离主题(对不起,以防万一),但如果有人可以帮助我,那也会让我开心。

提前致谢。

【问题讨论】:

    标签: c linux ld-preload start-stop-daemon


    【解决方案1】:

    使用env 程序运行它,它会修改环境然后调用exec

    start-stop-daemon --start --chuid servers --quiet --background --nicelevel -1 --pidfile $PIDFILE --make-pidfile \
       --exec env "LD_PRELOAD=/path/to/libstuff.so" "HOME=$WORK_PATH" "$WORK_PATH/program" <args>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2011-08-18
      • 2011-06-24
      • 1970-01-01
      • 2020-09-05
      相关资源
      最近更新 更多