Run commands after another
Ex.
mkdir temp & cd temp & ls
Run commands after another if the previous command SUCCEEDS
Ex.
mkdir temp && cd temp && ls
Run commands after another if the previous command FAILS
Ex.
mkdir temp || echo 'mkdir failed'
Run commands after another
Ex.
mkdir temp & cd temp & ls
Run commands after another if the previous command SUCCEEDS
Ex.
mkdir temp && cd temp && ls
Run commands after another if the previous command FAILS
Ex.
mkdir temp || echo 'mkdir failed'
The solution to this is so simple that I’m probably going to forget it in a couple of days 😉 Going to put it here for me to find next time I forget
Here it is:
ssh -N -L 12345:localhost:12345 -L 23456:localhost:23456 -L 34567:localhost:34567 user@server
This will setup 3 port forwards on localhost from server. Need more ports? just add another -L section and you are set
Tested on OpenSSH 7.8p1 and LibreSSL 2.6.2
Ubuntu deprecated Upstart so I had to turn to Systemd for my app controls in Ubuntu 18.04. In this script I set 2 environment variables (HOME and LANG), change directory to the app directory and starts the Play Framework application
# Myapp systemd script # # Location:/lib/systemd/system/myapp.service # # Useful commands: # # Start Myapp: systemctl start myapp.service # Stop Myapp: systemctl stop myapp.service # Restart Myapp: systemctl restart myapp.service # Show status: systemctl status myapp.service # Enable start on boot: systemctl enable myapp.service # Disable start on boot:systemctl disable myapp.service # # List all services running: systemctl # Check config: systemd-analyze verify myapp.service # #################################################################################### [Unit] Description=Job that runs my app daemon [Service] Type=forking Environment=HOME=/opt/myapp/app Environment=LANG=en_US.UTF-8 ExecStartPre=/bin/bash -c 'cd /opt/myapp/app' ExecStart=/bin/bash -c 'bin/myapp -J-Xms256M -J-Xmx768m -J-server -Dhttp.port=80 -Dconfig.file=conf/application.conf -Dlogger.file=conf/application-logger.xml' [Install] WantedBy=multi-user.target
The arguments for the Play service are what I normally use for AWS. You might need other settings
Tested on Ubuntu 18.04 and Play Framework 2.3