## job control ### Objectives You must follow the same [principles](https://public.01-edu.org/subjects/0-shell/) as the first subject. Job control refers to the ability to selectively stop (suspend) the execution of processes and continue (resume) their execution at a later point. In `job control`, you will have to implement the following [builtins](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Job-Control-Builtins): - jobs - bg - fg - kill You must also be able to stop jobs with the `Ctrl + Z`. ### Instructions - The project has to be written in a compiled language like (C, Rust Go or other), **interpreted languages like (Perl and others) are not allowed**. - The code must respect the [good practices](https://public.01-edu.org/subjects/good-practices/) This project will help you learn about: - Job control - Process creation and synchronization - Commands syntax - Scripting language ### Usage ``` student$ ./0-shell $ tar -czf home.tar.gz . & [1] 8287 $ sleep 50 & [2] 8870 $ jobs [1]- Running tar -czf home.tar.gz . & [2]+ Running sleep 50 & $ jobs -l [1]- 8287 Running tar -czf home.tar.gz . & [2]+ 8870 Running sleep 50 & $ kill 8287 [1]+ Terminated tar -czf home.tar.gz . $ jobs [2]+ Running sleep 50 & $ exit student$ ```