Cho đến bây giờ tôi đã sử dụng
pidof -o %PPID -x "my-tool"
Để phát hiện pid của một phiên bản cuối cùng đang chạy của công cụ của tôi.
Đây là phiên bản ngắn của tệp công cụ của tôi, tập lệnh bash thực thi
#!/bin/bash
if pidof -o %PPID -x "my-tool"; then
echo "Already running"
exit 1
fi
... if not running go on
Nhưng bây giờ tôi cần cho phép một phiên bản duy nhất cho mỗi người dùng và nhiều người trên mỗi máy , vì vậy chúng tôi có thể có 100 công cụ của tôi chạy trong cùng một thời điểm, nhưng chỉ có 1 cho mỗi người dùng.
Lưu ý rằng tôi cần một bài kiểm tra để tạo ra một cái gì đó giống như một singleton. Nếu công cụ sẽ được khởi động và có một phiên bản khác đang chạy, nó sẽ tự đóng.
Tóm lại: Tôi cần một tập lệnh bash có thể phát hiện nếu nó đang chạy cho người dùng hiện tại và trong trường hợp này nó phải thoát.
Làm thế nào để ?
pidof, có những công cụ tốt hơn nói dốipgrep