\documentclass[crop, tikz]{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} \usetikzlibrary{arrows.meta} % Just a workaround to leave some space around the diagram \filldraw[color=white,fill=white] (-8,-9) rectangle (8,1); % Boxes \newcommand{\tbox}[3]{ \node[draw, rounded corners, text centered, text width=3cm] (#1) at (#2) {\bf #3} ; } \tbox {top} {0,0} {Job not running} \tbox {left} {-6,-4} {Job running in the background} \tbox {right} {6,-4} {Job running in the foreground} \tbox {bottom} {0,-8} {Job suspended} % Arrows \newcommand{\arr}[4]{ \draw[-{Latex[length=3mm]}, ultra thick] (#1) edge[#4] node[fill=white] {\texttt{#3}} (#2) ; } \arr {top} {left} {command \&} {bend right} \arr {left} {top} {kill \%job} {bend right} \arr {left} {bottom} {kill -STOP \%job} {bend right} \arr {bottom} {left} {bg \%job} {bend right} \arr {bottom} {right} {fg \%job} {bend left} \arr {right} {bottom} {Ctrl+Z} {bend left} \arr {right} {top} {Ctrl+C} {bend left} \arr {top} {right} {command} {bend left} \arr {left} {right} {fg \%job} {} \end{tikzpicture} \end{document}