Problem solved. Seems like when the query service is starting up, it tries to query the network interface for something, and when the interface is wireless and not yet connected, the query service or indexer fails to start.
In my case, the indexer services is started but the GSI client has issues. No errors reported in the console.
Saw this in query.log: 2017-11-01T18:30:10.302-07:00 [Error] GSIC[default/loop-1509586210300889696] GSI instantiation failed: in NewGsiClient(): MetadataProvider.getWatcherAddr() : Fail to find an IP address