To create a script that runs a Python program at launch, waits for it to finish, and then initiates a shutdown sequence on a Raspberry Pi, you can follow these steps: 1. **Create the Python Program**: Ensure you have the Python program you want to run. For this example, let's assume it's named `my_program.py`. 2. **Create a Shell Script**: This script will execute your Python program and then shut down the Raspberry Pi. 3. **Set Up the Script to Run at Boot**: Use `cron` or `systemd` to run the script at startup. Here's how you can implement these steps: ### Step 1: Create the Python Program Make sure your Python program is ready. For example, `my_program.py`: ```python # my_program.py import time def main(): print("Program started") time.sleep(10) # Simulate a task that takes 10 seconds print("Program finished") if __name__ == "__main__": main() ``` ### Step 2: Create a Shell Script Create a shell script that will run your Python program and then shut down the Raspberry Pi. Create a file named `run_and_shutdown.sh`: ```bash #!/bin/bash # Run the Python program python3 /path/to/your/my_program.py # Wait for the program to finish wait # Initiate shutdown sudo shutdown -h now ``` Make sure to replace `/path/to/your/my_program.py` with the actual path to your Python script. ### Step 3: Make the Shell Script Executable Run the following command to make the script executable: ```bash chmod +x /path/to/your/run_and_shutdown.sh ``` ### Step 4: Set Up the Script to Run at Boot You can use `cron` to run the script at startup: 1. Open the crontab file for editing: ```bash crontab -e ``` 2. Add the following line to the crontab file to run the script at boot: ```bash @reboot /path/to/your/run_and_shutdown.sh ``` 3. Save and exit the editor. Alternatively, you can use `systemd` to create a service that runs the script at startup: 1. Create a new service file: ```bash sudo nano /etc/systemd/system/run_and_shutdown.service ``` 2. Add the following content to the file: ```ini [Unit] Description=Run Python Program and Shutdown [Service] ExecStart=/path/to/your/run_and_shutdown.sh Type=oneshot RemainAfterExit=true [Install] WantedBy=multi-user.target ``` 3. Save and exit the editor. 4. Enable the service to run at startup: ```bash sudo systemctl enable run_and_shutdown.service ``` 5. Start the service (optional, for testing): ```bash sudo systemctl start run_and_shutdown.service ``` This setup will ensure that your Python program runs at boot, and once it completes, the Raspberry Pi will shut down. Make sure to test the script and service to ensure everything works as expected.