Оберните команду, которую вы хотите запустить в стае, чтобы гарантировать, что одновременно будет выполняться только одна копия. Используйте файл lock_file, хранящийся в дереве домашней директории пользователя, чтобы каждый пользователь имел свой собственный файл блокировки. Например:
lockfile = "~/lockfile"
(
if flock -n 200; then
command
else
echo "Could not get lock $lock_file
fi
) 200>$lock_file
«команда» может быть любой командой bash или скриптом.
man flock дает примеры использования