ubuntu cli / scripting
parent
ad1fe857cc
commit
90a8eb8260
@ -0,0 +1,59 @@
|
||||
# shell Programming
|
||||
|
||||
* [Tutorial](https://www.tutorialspoint.com/unix/shell_scripting.htm)
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
echo "File Name: $0"
|
||||
echo "First Parameter : $1"
|
||||
echo "Second Parameter : $2"
|
||||
echo "Quoted Values: $@"
|
||||
echo "Quoted Values: $*"
|
||||
echo "Total Number of Parameters : $#"
|
||||
```
|
||||
|
||||
|
||||
|
||||
* while loop
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
a=0
|
||||
while [ "$a" -lt 10 ] # this is loop1
|
||||
do
|
||||
b="$a"
|
||||
while [ "$b" -ge 0 ] # this is loop2
|
||||
do
|
||||
echo -n "$b "
|
||||
b=`expr $b - 1`
|
||||
done
|
||||
echo
|
||||
a=`expr $a + 1`
|
||||
done
|
||||
```
|
||||
|
||||
|
||||
|
||||
* Assume variable **a** holds 10 and variable **b** holds 20 then
|
||||
|
||||
| Operator | Description | Example |
|
||||
| :------: | :----------------------------------------------------------: | :------------------------: |
|
||||
| **-eq** | Checks if the value of two operands are equal or not; if yes, then the condition becomes true. | [ $a -eq $b ] is not true. |
|
||||
| **-ne** | Checks if the value of two operands are equal or not; if values are not equal, then the condition becomes true. | [ $a -ne $b ] is true. |
|
||||
| **-gt** | Checks if the value of left operand is greater than the value of right operand; if yes, then the condition becomes true. | [ $a -gt $b ] is not true. |
|
||||
| **-lt** | Checks if the value of left operand is less than the value of right operand; if yes, then the condition becomes true. | [ $a -lt $b ] is true. |
|
||||
| **-ge** | Checks if the value of left operand is greater than or equal to the value of right operand; if yes, then the condition becomes true. | [ $a -ge $b ] is not true. |
|
||||
| **-le** | Checks if the value of left operand is less than or equal to the value of right operand; if yes, then the condition becomes true. | [ $a -le $b ] is true. |
|
||||
|
||||
|
||||
|
||||
| Operator | Description | Example |
|
||||
| :------: | :----------------------------------------------------------: | :-----------------------------------: |
|
||||
| **!** | This is logical negation. This inverts a true condition into false and vice versa. | [ ! false ] is true. |
|
||||
| **-o** | This is logical **OR**. If one of the operands is true, then the condition becomes true. | [ $a -lt 20 -o $b -gt 100 ] is true. |
|
||||
| **-a** | This is logical **AND**. If both the operands are true, then the condition becomes true otherwise false. | [ $a -lt 20 -a $b -gt 100 ] is false. |
|
||||
|
||||
* Other [Operator](https://www.tutorialspoint.com/unix/unix-basic-operators.htm)
|
||||
|
||||
@ -0,0 +1,102 @@
|
||||
# Quick Guide for auto start service
|
||||
|
||||
* [Reference](https://medium.com/@benmorel/creating-a-linux-service-with-systemd-611b5c8b91d6)
|
||||
|
||||
* [Reference 2](https://linuxconfig.org/how-to-create-systemd-service-unit-in-linux)
|
||||
|
||||
* [DZone](https://dzone.com/articles/run-your-java-application-as-a-service-on-ubuntu)
|
||||
|
||||
* create service script in `/etc/systemd/system/myserver.service`
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=ROT13 demo service
|
||||
After=network.target
|
||||
StartLimitIntervalSec=0
|
||||
[Service]
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1
|
||||
User=centos
|
||||
ExecStart=/usr/bin/env php /path/to/server.php
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
* sample java application
|
||||
|
||||
```sh
|
||||
[Unit]
|
||||
Description=My Webapp Java REST Service
|
||||
[Service]
|
||||
User=ubuntu
|
||||
# The configuration file application.properties should be here:
|
||||
|
||||
#change this to your workspace
|
||||
WorkingDirectory=/home/ubuntu/workspace
|
||||
|
||||
#path to executable.
|
||||
#executable is a bash script which calls jar file
|
||||
ExecStart=/home/ubuntu/workspace/my-webapp
|
||||
|
||||
SuccessExitStatus=143
|
||||
TimeoutStopSec=10
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
* script `/home/ubuntu/workspace/my-webapp`. Change to executable `sudo chmod u+x my-webapp`
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
sudo /usr/bin/java -jar my-webapp-1.0-SNAPSHOT.jar server config.yml
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* start service
|
||||
|
||||
```sh
|
||||
|
||||
$ sudo systemctl start myserver.service
|
||||
|
||||
// or
|
||||
$ sudo systemctl start myserver
|
||||
```
|
||||
|
||||
|
||||
|
||||
* to restart
|
||||
|
||||
```sh
|
||||
$ sudo systemctl restart myserver.service
|
||||
```
|
||||
|
||||
|
||||
|
||||
* automatically start on boot
|
||||
|
||||
```sh
|
||||
$ sudo systemctl enable myserver.service
|
||||
```
|
||||
|
||||
* check active
|
||||
|
||||
```sh
|
||||
$ systemctl is-active myserver.service
|
||||
```
|
||||
|
||||
* All services status
|
||||
|
||||
```sh
|
||||
$ service --status-all
|
||||
```
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue