Use caution with the $X command. Grbl may not do as you want.
From Grbl’s author:
"$X - Kill alarm lock
Grbl’s alarm mode is a state when something has gone critically wrong, such as a hard limit or an abort during a cycle, or if Grbl doesn’t know its position. By default, if you have homing enabled and power-up the Arduino, Grbl enters the alarm state, because it does not know its position. The alarm mode will lock all G-code commands until the ‘$H’ homing cycle has been performed. Or if a user needs to override the alarm lock to move their axes off their limit switches, for example, ‘$X’ kill alarm lock will override the locks and allow G-code functions to work again."
But, tread carefully!! This should only be used in emergency situations. The position has likely been lost, and Grbl may not be where you think it is. So, it’s advised to use G91 incremental mode to make short moves. Then, perform a homing cycle or reset immediately afterwards.
As noted earlier, startup lines do not execute after a $X command. Always reset when you have cleared the alarm and fixed the scenario that caused it. When Grbl resets to idle, the startup lines will then run as normal.