LD_PRELOAD哪个程序是目标

时间:2014-10-03 18:04:53

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

有没有办法找出哪个程序是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

我不知道这是否允许这样做(对不起),但如果有人可以帮助我,那也会让我的日子过去。

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用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>