winlin

fix bug of script, support both abs and relative path

@@ -41,17 +41,17 @@ failed_msg() { @@ -41,17 +41,17 @@ failed_msg() {
41 # 1, for pid file not exists. 41 # 1, for pid file not exists.
42 # 2, for get proecess info by pid failed. 42 # 2, for get proecess info by pid failed.
43 # @set variable $error_msg if error. 43 # @set variable $error_msg if error.
44 -# @set variable $srs_pid_file to pid file. 44 +# @set variable $pid_file to pid file.
45 load_process_info() { 45 load_process_info() {
46 # get pid file 46 # get pid file
47 - srs_pid_file=`cat ${ROOT}/${CONFIG} |grep ^pid|awk '{print $2}'|awk -F ';' '{print $1}'`  
48 - if [[ -z $srs_pid_file ]]; then srs_pid_file=${DEFAULT_PID_FILE}; fi 47 + pid_file=`cd ${ROOT} && cat ${CONFIG} |grep ^pid|awk '{print $2}'|awk -F ';' '{print $1}'`
  48 + if [[ -z $pid_file ]]; then pid_file=${DEFAULT_PID_FILE}; fi
49 # get abs path 49 # get abs path
50 - srs_pid_dir=`dirname $srs_pid_file`  
51 - srs_pid_file=`(cd ${ROOT}; cd $srs_pid_dir; pwd)`/`basename $srs_pid_file` 50 + pid_dir=`dirname $pid_file`
  51 + pid_file=`(cd ${ROOT}; cd $pid_dir; pwd)`/`basename $pid_file`
52 52
53 - srs_pid=`cat $srs_pid_file 2>/dev/null`  
54 - ret=$?; if [[ 0 -ne $ret ]]; then error_msg="file $srs_pid_file does not exists"; return 1; fi 53 + srs_pid=`cat $pid_file 2>/dev/null`
  54 + ret=$?; if [[ 0 -ne $ret ]]; then error_msg="file $pid_file does not exists"; return 1; fi
55 55
56 ps -p ${srs_pid} >/dev/null 2>/dev/null 56 ps -p ${srs_pid} >/dev/null 2>/dev/null
57 ret=$?; if [[ 0 -ne $ret ]]; then error_msg="process $srs_pid does not exists"; return 2; fi 57 ret=$?; if [[ 0 -ne $ret ]]; then error_msg="process $srs_pid does not exists"; return 2; fi
@@ -68,17 +68,17 @@ start() { @@ -68,17 +68,17 @@ start() {
68 ok_msg "Starting SRS..." 68 ok_msg "Starting SRS..."
69 69
70 # get log file 70 # get log file
71 - srs_log_file=`cat ${ROOT}/${CONFIG} |grep '^srs_log_file'| awk '{print $2}'| awk -F ';' '{print $1}'`  
72 - if [[ -z $srs_log_file ]]; then srs_log_file=${DEFAULT_LOG_FILE}; fi 71 + log_file=`cd ${ROOT} && cat ${CONFIG} |grep '^log_file'| awk '{print $2}'| awk -F ';' '{print $1}'`
  72 + if [[ -z $log_file ]]; then log_file=${DEFAULT_LOG_FILE}; fi
73 # get abs path 73 # get abs path
74 - srs_log_dir=`dirname $srs_log_file`  
75 - srs_log_file=`(cd ${ROOT}; cd $srs_log_dir; pwd)`/`basename $srs_log_file` 74 + log_dir=`dirname $log_file`
  75 + log_file=`(cd ${ROOT} && cd $log_dir && pwd)`/`basename $log_file`
76 76
77 # TODO: FIXME: set limit by, for instance, "ulimit -HSn 10000" 77 # TODO: FIXME: set limit by, for instance, "ulimit -HSn 10000"
78 - if [[ -z $srs_log_file ]]; then  
79 - (cd ${ROOT}; ${ROOT}/${APP} -c ${CONFIG} >/dev/null 2>&1) 78 + if [[ -z $log_file ]]; then
  79 + (cd ${ROOT}; ${APP} -c ${CONFIG} >/dev/null 2>&1)
80 else 80 else
81 - (cd ${ROOT}; ${ROOT}/${APP} -c ${CONFIG} >> $srs_log_file 2>&1) 81 + (cd ${ROOT}; ${APP} -c ${CONFIG} >> $log_file 2>&1)
82 fi 82 fi
83 83
84 # check again after start server 84 # check again after start server
@@ -86,7 +86,11 @@ start() { @@ -86,7 +86,11 @@ start() {
86 # sleep a little while, for srs may start then crash. 86 # sleep a little while, for srs may start then crash.
87 sleep 0.1 87 sleep 0.1
88 load_process_info 88 load_process_info
89 - ret=$?; if [[ 0 -ne $ret ]]; then failed_msg "SRS start failed, see $srs_log_file"; return $ret; fi 89 + ret=$?; if [[ 0 -ne $ret ]]; then
  90 + failed_msg "SRS start failed";
  91 + failed_msg "see $log_file";
  92 + return $ret;
  93 + fi
90 done 94 done
91 95
92 # check whether started. 96 # check whether started.
@@ -131,8 +131,6 @@ int main(int argc, char** argv) @@ -131,8 +131,6 @@ int main(int argc, char** argv)
131 { 131 {
132 int ret = ERROR_SUCCESS; 132 int ret = ERROR_SUCCESS;
133 133
134 - srs_trace("srs(simple-rtmp-server) "RTMP_SIG_SRS_VERSION);  
135 -  
136 // TODO: support both little and big endian. 134 // TODO: support both little and big endian.
137 srs_assert(srs_is_little_endian()); 135 srs_assert(srs_is_little_endian());
138 136
@@ -153,10 +151,13 @@ int main(int argc, char** argv) @@ -153,10 +151,13 @@ int main(int argc, char** argv)
153 #endif 151 #endif
154 #endif 152 #endif
155 153
  154 + // never use srs log(srs_trace, srs_error, etc) before config parse the option,
  155 + // which will load the log config and apply it.
156 if ((ret = _srs_config->parse_options(argc, argv)) != ERROR_SUCCESS) { 156 if ((ret = _srs_config->parse_options(argc, argv)) != ERROR_SUCCESS) {
157 return ret; 157 return ret;
158 } 158 }
159 - 159 +
  160 + srs_trace("srs(simple-rtmp-server) "RTMP_SIG_SRS_VERSION);
160 srs_trace("uname: "SRS_UNAME); 161 srs_trace("uname: "SRS_UNAME);
161 srs_trace("build: %s, %s", SRS_BUILD_DATE, srs_is_little_endian()? "little-endian":"big-endian"); 162 srs_trace("build: %s, %s", SRS_BUILD_DATE, srs_is_little_endian()? "little-endian":"big-endian");
162 srs_trace("configure: "SRS_CONFIGURE); 163 srs_trace("configure: "SRS_CONFIGURE);