I created a small script a while back because I had an application that had some known issues relating to starting again after Wi-Fi had reconnected. So I would have to kill the app and start it again. Rather than go to the app, each time, kill it and then restart it, I created a quick script that I mapped to a function key that would do this for me.
The Script
#!/bin/bash var=$(ps ax | grep owncloud) process=${var:0:5} kill -HUP $process owncloud &
This section finds the process details and sets the information as the variable “var” in the script.
var=$(ps ax | grep owncloud)
Here is the output.
You will notice that the first five characters are ” 4254″ which is the process ID for ownCloud. We will use this id in the next line. Notice that I counted the space before the 4 because the next line will take that into account.
process=${var:0:5}
This line will take the first five characters from the variable “var” that was set in the previous line. Again, this is the process ID for ownCloud.
Next, we will kill the process that we have isolated as the variable “process” in the previous step. This is the command to do that.
kill -HUP $process
Finally, we start the application again. We use the “&” after the application name to start it independent of the terminal as it’s own process.
owncloud &
Another Example
This process could be used with any application or process. You would just replace “owncloud” with the application name. Here is any example of restarting FireFox.
#!/bin/bash var=$(ps ax | grep firefox) process=${var:0:5} kill -HUP $process firefox &
Conclusion
The scripting of a process reset is just a small piece of a bigger picture. This snippet could be used in a bigger script that would require a process reset.
Let me know if you have questions or want to share your use of the script in the comments below.