Method #1, pidof
I have a /var/backup/systemBackup.sh for system backup.
edit /var/backup/runsystemBackup.sh
#!/bin/bash
if pidof -x "systemBackup.sh" >/dev/null; then
echo "Process already running"
exit 0
fi
/var/backup/systemBackup.sh > /dev/null &
try run /var/backup/runsystemBackup.sh
Method #2, lock file
I have a /var/backup/systemBackup.sh for system backup.
edit /var/backup/runsystemBackup.sh
#!/bin/sh
lockdir=/tmp
BACKUP=/var/backup/systemBackup.sh
LOGGER=/usr/bin/logger
if [ ! -f /$lockdir/systemBackup.sh ]; then
touch $lockdir/systemBackup.sh
$BACKUP
rm $lockdir/systemBackup.sh
else
echo "systemBackup.sh already running"
$LOGGER -d -t SYSTEM_Backup "systemBackup.sh already running"
fi
try run /var/backup/runsystemBackup.sh
Method #3, flock with cron job
# m h dom mon dow user command 5 0 * * * flock -w 0 /tmp/sqlbackup.sh.lock /var/backup/systemBackup.sh