有没有办法确定LD_PRELOAD针对的是哪个程序?
LD_PRELOAD=/path/to/libstuff.so ./stuff <args>
就像在C/C++中构建libstuff
库以及预加载它时一样,有没有办法确定目标程序是stuff
?
如果文件是stuff
,那么这是一种安全的方法吗。
如果不建议使用
问的原因是我无法获得
HOME=$WORK_PATH start-stop-daemon --start --chuid servers --quiet --background --nicelevel -1 --pidfile $PIDFILE --make-pidfile --exec $WORK_PATH/program <args>
使用针对program
而非start-stop-daemon
的LD_PRELOAD
我不知道是否允许这样偏离话题(抱歉),但如果有人能帮我,我的日子也会过得很愉快。
提前谢谢。
使用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>