StartPHPDaemon
#!/bin/bash
currdate=$(date +'%m%d%y')
curpath=$(readlink -f ${0%/*})
php_file=$curpath/ExecuteJobFromQueue.php
base_php=$(basename $php_file)
for pids in $(ps aux | grep $base_php | grep -v grep | awk '{print $2 '})
do
kill $pids
echo "Killing $pids"
done
#echo $currdate >> $curpath/logs/StartService_${currdate}.LOG
#date +'%R:%S' >> $curpath/logs/StartService_${currdate}.LOG
nohup php $php_file "E" > /dev/null 2>&1 &
ExecuteJobFromQueue. php
...// rest of the code
$server_config_path=getenv('CONFIGPATH');
wh_log("Server config path: ".$server_config_path,"INFO");
...// rest of the code
Я хочу получить значение CONFIGPATH из / etc / profile
Когда я запускаю StartPHPDaemon из пути, куда помещается файл, он извлекает значение, используя следующую команду ./StartPHPDaemon
.
Вывод (журнал):
[15-Jan-2020 11:01:33] INFO: Server config path: /home/Project/Workspace/ConfigFile/dmimasterserver.config
Но когда я запускаю его по пути root с помощью команды sudo sh /home/Project/StartPHPDaemon
, значение становится пустым.
Вывод (журнал):
[15-Jan-2020 11:01:33] INFO: Server config path:
Я испробовал все решения для работы со стеком, но безрезультатно.
/ etc / profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
JAVA_HOME=/usr/lib/jvm/jdk1.7.0
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH
CONFIGPATH="/home/Project/Workspace/ConfigFile/dmimasterserver.config"
export CONFIGPATH