GNU/Linux >> Belajar Linux >  >> Linux

Perintah Unix Apa yang Dapat Digunakan Sebagai Semaphore/lock?

Saya ingin menjalankan beberapa skrip Bash Shell secara paralel. Namun, saya ingin menghindari kondisi balapan. Apa perintah Unix yang benar-benar atomik yang dapat saya gunakan untuk tujuan ini, dan bagaimana cara menggunakannya?

Jawaban yang Diterima:

Jika lockfile tidak diinstal pada sistem Anda, maka mkdir akan melakukan
pekerjaan:ini adalah operasi atom, dan gagal jika direktori
sudah ada (selama Anda tidak menambahkan -p baris perintah
switch).

create_lock_or_wait () {
  path="$1"
  wait_time="${2:-10}"
  while true; do
        if mkdir "${path}.lock.d"; then
           break;
        fi
        sleep $wait_time
  done
}

remove_lock () {
  path="$1"
  rmdir "${path}.lock.d"
}

Linux
  1. Apa itu umask di UNIX/Linux

  2. Spinlock versus Semaphore

  3. Tidak dapat menghapus direktori di Unix

  1. Apa yang harus dilakukan ketika Ctrl + C tidak dapat menghentikan proses?

  2. Port apa yang digunakan oleh aplikasi

  3. Bisakah saya menguji jaringan saya sendiri?

  1. Apa itu spinlock di Linux?

  2. Perintah apa yang dapat digunakan untuk memaksa melepaskan semua yang ada di partisi swap kembali ke memori?

  3. Apa bagian lengket dalam sistem file UNIX? Kapan digunakan?