Run Tasks/Jobs in the Background while closing the SSH Session

We usually run imports and exports for our email marketing software using PHP-CLI (Command-line Interface). The problem comes when we want to work on something else. Instead of opening multiple terminal sessions, we use this little application called Screen. This little application is quite handy when it comes to keeping those sessions alive by running tasks/jobs in the background. Screen is a console application that allows you to have multiple terminal sessions within a single window.

If you don’t have it installed, you can install it by using the following command:

sudo apt-get update
sudo apt-get install screen

To use:

screen -dmSL [session name] [commands]

d – starts a session and immediately detaches from it
m – forces the creation of a new session
S – lets you give the session a friendly name
L – turns on logging to ~/screenlog.0

To detach and keep the processes running:

Ctrl + A + D

To resume the session:

Screen -x "session-name"

Get rid of .DS_Store files from GIT Repo on Mac OS X

Whether you are new to GIT repositories or an experienced developer, I am sure, at some point in using GIT, you must have come across these annoying .DS_Store files that seem to populate out of nowhere. It is a much apparent problem if you have enabled viewing hidden files.

What are they? DS_Store is a short form for Desktop Service Store that contains attributes of a folder and is created every single time a folder is navigated to. The more you navigate through your program source code, the more .DS_Store files you will end up finding. You can delete them but they will appear again.

I am okay with seeing them on my Mac but when you have an auto deployment script setup for GIT, you prefer not having these useless files on your Linux machine. We use a neat little auto deployment script which gets executed each time new updates are pushed to our repository. We have a repo for each of our business applications so it saves our developers plenty of time navigating their way through FTP programs and updating files through that.

To help address this issue, you can configure GIT globally to ignore .DS_Store files by executing this the following:

git config --global core.excludesfile ~/.gitignore

OR, if you already pushed some of these .DS_Store files, you can get rid of them from your repo in the following way. Go to the root of your app directory and execute the following command in terminal:

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

That will get rid of all recognition of .DS_Store in your repo. Next, add the .DS_Store to the ignore list. You can do that by simply creating a .gitignore file. Place the following in the .gitignore file at the root of your app directory.


Save it as .gitignore and push the changes through. Voila! One less annoying problem to worry about 🙂 I am still giving thought towards publishing the source code for our Auto Deploy script 😉