Самый простой способ - использование файлов-блокировок. При запуске комманда создаёт некий пустой файл с определённым именем, а при окончании работы удаляет его. Соответсвенно, при старте она проверяет существует ли уже такой файл и если существует, то это с высокой степенью вероятности означает, что ещё работает предыдущий запуск. Вместо файла модно использовать базу данных.
Способ посложнее - запускать задачи через специальный менеджер задач, который будет следить за их очередностью, контроллировать не завис ли процес и пр.