有没有办法找出哪个程序是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
我不知道这是否允许这样做(对不起),但如果有人可以帮助我,那也会让我的日子过去。
提前致谢。
答案 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>