UbuntuBudgie / budgie-extras

Additional Budgie Desktop enhancements for user experience
https://ubuntubudgie.org
GNU General Public License v3.0
175 stars 34 forks source link

Take a closer look at "pgrep" usage in applets #462

Closed samlane-ma closed 11 months ago

samlane-ma commented 11 months ago

With certain applets, we have instances where "pgrep" is used to determine if a process is running, so we don't spawn multiple instances. In situations where multiple users may be logged on concurrently, there may be times where pgrep will return the PID of the 2nd user's process, giving a false positive and preventing the applet from spawning the process for the current user.

We should examine where pgrep is used in budgie-extras applets, and check to make sure we aren't running into this issue with them. https://github.com/search?q=repo%3AUbuntuBudgie%2Fbudgie-extras%20pgrep&type=code

Looking at the Take-a-break applet: https://github.com/UbuntuBudgie/budgie-extras/blob/86dafe4ab66313a5b5a7c4b7ec9538acc7e5c432/budgie-takeabreak/budgie_takeabreak.py#L267 the "-u" option is used to restrict pgrep to checking the current users processes only. This appears to be the best path forward for instances which may have this issue, as it should allow each user to have the process running, while still preventing multiple instances per user.

samlane-ma commented 11 months ago

So this issue seems to potentially affect the following applets: Dropby, Takeabreak, Shuffler, Previews, Wallstreet, and Weathershow.

Used following test case steps to verify applets working correctly with multi-user situations:

Dropby and Weathershow issues were resolved with 5fc1ac5 Other applets are working as intended without any issues.