Install: pip install add_service --user # Support both python2/python3 Examples: add_service "python3 -m http.server 80" --user root --name http_server --start python -m add_service ssh_nat.sh # Defaut service name is ssh_nat.service Usage: add_service shell_file/cmd [--user root(default `whoami`)] [--name service_name] [--start] positional arguments: executable Command or any executable file(`bin`, `.sh`, `.py`, `.js`) optional arguments: --user USER User to execute, default is `whoami` --name NAME Service name, default add_service0.service --start Start service immediately --envs ENVS List of environment variable names to save (e.g. "PATH,DISPLAY") --clone-envs Clone all environment variables in the current shell -l, --ls List all services created by add_service --rm NAME Remove the service created by add_service -h, --help show this help message
For example: share directory ~/share by python3 http.server when system startup.
user@host:~$ cd ~/share/ user@host:~/share$ add_service "python3 -m http.server 80" --user root --name http_server --start
Below will write to "/etc/systemd/system/http_server.service"
--------------------
[Unit]
Description="http_server.service added by add_service: add_service "python3 -m http.server 80" --user root --name http_server --start"
After=network.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/user/share
ExecStart=/usr/bin/python3 -m http.server 80
PrivateTmp=false
Restart=on-failure
[Install]
WantedBy=multi-user.target
--------------------
Need sudo to create and enable service, the execute commands:
sudo mv /tmp/http_server.tmp.service /etc/systemd/system/http_server.service &&
sudo systemctl enable http_server.service &&
sudo systemctl start http_server.service
[sudo] password for user:
Created symlink /etc/systemd/system/multi-user.target.wants/http_server.service β /etc/systemd/system/http_server.service.
View Service working status and log by:
sudo systemctl status tmp_test_add_service.service
sudo journalctl -f -u tmp_test_add_service.service