How and When are lightning channels disabled? On the testnet and some mainnet there are channels which are disabled, so if you try to route a payment through them it failed with this as an error message. Reading through the RPC commands, it seems you cannot disable your channels. In some cases the node that has a disabled channel is still online, since you can still ping and connect to it. 

So How does a node disable a channel, or part of a channel?
This is a tricky question as it tackles the difference between what the protocol supports and what implementations provider as an API. 

On a protocol level channels are enabled / disabled via an update message on the gossip Protocol. Nodes SHOULD set the disabled flag and send such a message if they are shutting down or turning (shortly) off for maintenance. Similarly they SHOULD enable the channel if the node is going online again. Now gossip messages are rate limited to prevent spam. Thus it could mean that the node is online but the update message is not sent / propagated yet. Your node would refuse to even try to send out a package over a channel which is known to be disabled to the payer node. 

You are correct: lightning nodes do not provide a command line api to change the activation state of a channel.