最近在看wm源碼,發(fā)現(xiàn)了一個奇怪的現(xiàn)象
parseCommand方法中有一個調(diào)用
$mode = '';
if ($command === 'start') {
if ($command2 === '-d' || static::$daemonize) {
$mode = 'in DAEMON mode';
} else {
$mode = 'in DEBUG mode';
}
}
static::log("Workerman $command $mode");
// Get master process PID.
$master_pid = \is_file(static::$pidFile) ? \file_get_contents(static::$pidFile) : 0;
static::log之前的echo都可以正常輸出到終端,在static::log之后的echo都無法正常輸出,比如
echo 123213;
static::log("Workerman $command $mode");這個echo是無法輸出的,但是
echo "123213\n";
static::log("Workerman $command $mode");
這個echo又能正常輸出了
?
?
源碼我看了一遍,沒有發(fā)現(xiàn)什么問題,不知道是什么原因造成的,用的是linux,非守護進程模式調(diào)試
源碼中有這么一行:?$line = "\033[1A\n\033[K"; 正是此行終端ANSI控制碼引起的:033[1A:代表把光標向上移動1行\(zhòng)033[K:代表清空從光標位置到當前行末的內(nèi)容。所以要正常的echo,行末加上換行符。