2

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

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

就像libstuff在 C/C++ 中构建库以及预加载库时一样,有没有办法确定目标程序是 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

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

提前致谢。

4

1 回答 1

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>
于 2014-10-03T18:11:44.333 回答