+/** Buffer used to store line of characters */
+char * buffer = NULL;
+
+/** Named pipe used to communnicate with process2 */
+char * write_pipe = "/tmp/process1pipe";
+
+/** File descriptor of pipe */
+int file_descriptor;
+
+/**
+ * Handler for signals.
+ */
+void sig_handler(int signo)
+{
+ fprintf(stderr, "[%s] Received %s!\n", "process1", strsignal(signo));
+ if (signo == SIGUSR1) {
+ }
+ else if (signo == SIGTERM) {
+ fprintf(stderr, "[%s] > Releasing resources\n", "process1");
+ close(write_pipe);
+ unlink(write_pipe);
+
+ if (buffer) {
+ free(buffer);
+ buffer = NULL;
+ }
+ exit(0);
+ }
+ else if (signo == SIGTSTP) {
+ fprintf(stderr, "[%s] > Closing pipe\n", "process1");
+ close(write_pipe);
+ raise (SIGSTOP);
+ }
+ else if (signo == SIGCONT) {
+ fprintf(stderr, "[%s] > Opening pipe\n", "process1");
+ file_descriptor = open(write_pipe, O_WRONLY);
+ }
+}
+