Câu trả lời của tôi có phần giống với những gì Mike nói.
Trong kịch bản, bạn nên đặt một cái gì đó như thế này:
- tạo một tập tin khóa
- Kiểm tra sự tồn tại của tệp khóa khi bạn chạy nó lần sau.
Nhưng có một điều rất quan trọng bạn nên làm. và rằng để thực hiện một hệ thống bẫy.
Vì vậy, với điều đó, những gì bạn có thể làm là ngay cả khi bằng cách nào đó tập lệnh của bạn bị giết hoặc ai đó đã giết nó, thì bạn có thể bẫy tín hiệu đó và xóa tệp khóa, để bạn không có tệp khóa cũ.
Bạn có thể đọc làm thế nào để thực hiện điều đó ở đây .
Chỉ một điều nhỏ, bạn không thể bẫy tín hiệu 9, ý tôi là nếu có ai đó làm kill -9
, bạn không thể bẫy tín hiệu đó vì tín hiệu đó tương tác trực tiếp với kernel và không có cách nào để bẫy nó.
Ngoài ra, như được đề xuất bởi John, bạn cần xóa tệp khóa mỗi khi hệ thống của bạn khởi động lại, chỉ để đảm bảo rằng không còn tệp cũ nào.
Điều đó bạn có thể dễ dàng thực hiện bằng cách đặt một rm -f <FILE>
lệnh nhỏ trong /etc/rc.local