반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘은 리눅스의 백그라운드 서비스에 대해서 알아 보겠습니다. 

위 그림은 리눅스가 아니라 ^^ 윈도우즈 서비스 관리 콘솔입니다. ^^

리눅스에도 저런 아이가 있을까 해서 찾아 봤는데 ^^ 없네요 T.T 

그래서 리눅스 서비스를 서비스를 제공하는 systemd 라는 프로그램이 있습니다. 

그리고, systemd의 서비스를 관리할 수 있는 systemctl 이라는 프로그램이 있습니다. 

여기서 서비스는 여러분이 웹서버를 설치했을때 독립적인 데몬으로 관리할 수도 있겠지만, 리눅스가 관리하는 서비스로 만들수도 있습니다. 

요즘 제가 열심히 깔고 있는 MySQL 서버도 서비스로 운영할 수 있습니다. 

ubuntu에서는 서비스로 올려 두었습니다. 

systemctl start|stop|restart|status|enable|disable 서비스명[.service]

이렇게 관리할 수 있습니다. 

start는 서비스를 시작 합니다. 

stop은 서비스를 종료합니다. 

restart는 서비스를 재시작 합니다. 

status는 서비스의 상태를 확인해 줍니다. 

enable은 서비스가 서버나 컴퓨터가 재시작할때 자동으로 시작하게 해줍니다. 

disable는 서비스가 서버나 컴퓨터가 재시작할때 자동으로 시작 안됩니다. ^^

매뉴얼을 보시면 더다양한 명령어가 있지만 주로 사용하는 명령어는 저정도가 되겠습니다. 

지난 번에 설치한 mattermost 서비스를 종료해 보겠습니다. 

sudo systemctl stop mattermost

저렇게 하면 꺼집니다. ^^

sudo systemctl status mattermost

현재 상태를 보실 수 있습니다. 

 sudo systemctl stop mattermost
[sudo] password for talkit:
talkit@ubuntu:~$ sudo systemctl mattermost
Unknown operation mattermost.
talkit@ubuntu:~$ sudo systemctl status mattermost
● mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Fri 2022-12-30 19:33:44 PST; 1min 17s ago
    Process: 1430 ExecStart=/opt/mattermost/bin/mattermost (code=exited, status=0/SUCCESS)
   Main PID: 1430 (code=exited, status=0/SUCCESS)

Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.686 -08:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"com.mattermost.nps","wrapped_extras":"pathplugins/com.mattermost.nps/server/dist/plugin-linux-amd64pid1709"}
Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.686 -08:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"com.github.matterpoll.matterpoll","wrapped_extras":"pathplugins/com.github.matterpoll.matterpoll/server/dist/plugin-linux-amd64pid166>
Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.686 -08:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"playbooks","wrapped_extras":"pathplugins/playbooks/server/dist/plugin-linux-amd64pid1749"}
Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.687 -08:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"com.mattermost.apps","wrapped_extras":"pathplugins/com.mattermost.apps/server/dist/plugin-linux-amd64pid1724"}
Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.687 -08:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"focalboard","wrapped_extras":"pathplugins/focalboard/server/dist/plugin-linux-amd64pid1762"}
Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.690 -08:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"com.mattermost.calls","wrapped_extras":"pathplugins/com.mattermost.calls/server/dist/plugin-linux-amd64pid1733"}
Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.690 -08:00","level":"info","msg":"stopping websocket hub connections","caller":"platform/web_hub.go:121"}
Dec 30 19:33:44 ubuntu mattermost[1430]: {"timestamp":"2022-12-30 19:33:44.697 -08:00","level":"info","msg":"Server stopped","caller":"app/server.go:764"}
Dec 30 19:33:44 ubuntu systemd[1]: mattermost.service: Succeeded.
Dec 30 19:33:44 ubuntu systemd[1]: Stopped Mattermost.

결과는 위와 같이 나오네요. Active inactive로 나옵니다. 

sudo systemctl start masttermost

서버를 켜고 다시 실행해보면요.

 sudo systemctl start mattermost
talkit@ubuntu:~$ sudo systemctl status mattermost
● mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-12-30 19:36:10 PST; 7s ago
   Main PID: 2059 (mattermost)
      Tasks: 109 (limit: 19071)
     Memory: 545.1M
     CGroup: /system.slice/mattermost.service
             ├─2059 /opt/mattermost/bin/mattermost
             ├─2086 plugins/com.mattermost.plugin-todo/server/dist/plugin-linux-amd64
             ├─2097 plugins/com.github.matterpoll.matterpoll/server/dist/plugin-linux-amd64
             ├─2110 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
             ├─2116 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
             ├─2125 plugins/com.mattermost.apps/server/dist/plugin-linux-amd64
             ├─2137 plugins/com.mattermost.calls/server/dist/plugin-linux-amd64
             ├─2148 plugins/playbooks/server/dist/plugin-linux-amd64
             └─2161 plugins/focalboard/server/dist/plugin-linux-amd64

Dec 30 19:36:09 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:09.333 -08:00","level":"info","msg":"Initialized notification backend","caller":"app/plugin_api.go:973","plugin_id":"focalboard","name":"notifyMentions"}
Dec 30 19:36:09 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:09.333 -08:00","level":"info","msg":"Initialized notification backend","caller":"app/plugin_api.go:973","plugin_id":"focalboard","name":"notifySubscriptions"}
Dec 30 19:36:09 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:09.334 -08:00","level":"info","msg":"Initialized notification backend","caller":"app/plugin_api.go:973","plugin_id":"focalboard","name":"notifyLogger"}
Dec 30 19:36:09 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:09.341 -08:00","level":"info","msg":"FocalBoard Server","caller":"app/plugin_api.go:973","plugin_id":"focalboard","version":"7.5.4","edition":"plugin","build_number":"3697449214","build_date":"\"Wed Dec 14 18:04:06 UTC 2022\"","build_hash":"414>
Dec 30 19:36:09 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:09.341 -08:00","level":"info","msg":"Server.Start","caller":"app/plugin_api.go:973","plugin_id":"focalboard"}
Dec 30 19:36:09 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:09.350 -08:00","level":"info","msg":"Boards product successfully started.","caller":"app/plugin_api.go:973","plugin_id":"focalboard"}
Dec 30 19:36:10 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:10.429 -08:00","level":"info","msg":"Starting Server...","caller":"app/server.go:913"}
Dec 30 19:36:10 ubuntu mattermost[2059]: {"timestamp":"2022-12-30 19:36:10.429 -08:00","level":"info","msg":"Server is listening on [::]:8065","caller":"app/server.go:985","address":"[::]:8065"}
Dec 30 19:36:10 ubuntu mattermost[2059]: {"timestamp":"

위와 같이 나옵니다. 저기 보시면 Active가 active(running)네요 ^^

sudo systemctl restart mattermost

서버의 설정을 바꾸고 껐다 켤때는 stop, start를 순서대로 실행해도 되지만 위와 같이 restart로 해결 가능 합니다. 

sudo sytemctl disable mattermost

지금 현재 mattermost가 자동으로 컴퓨터가 켜지면 실행 되도록 되어 있는데 ^^

그 기능을 껐습니다.  다시 켜 두도록 하겠습니다. 

sudo systemctl disable mattermost
Removed /etc/systemd/system/mysql.service.wants/mattermost.service.
# 서버를 껐다 켭니다. 
sudo shutdown -r now

# 접속하자 마자 상태를 확인 합니다. 
sudo systemctl status mattermost
[sudo] password for talkit:
● mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: inactive (dead)

# mattermost를 자동으로 켜게 만듭니다. 
sudo systemctl enable mattermost     

# 서버를 껐다 켭니다. 
sudo shutdown -r now


# 접속하자 마자 상태를 확인 합니다. 
sudo systemctl status mattermost

● mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-12-30 19:45:17 PST; 1min 31s ago
   Main PID: 1418 (mattermost)
      Tasks: 114 (limit: 19071)
     Memory: 870.0M
     CGroup: /system.slice/mattermost.service
             ├─1418 /opt/mattermost/bin/mattermost
             ├─1653 plugins/com.mattermost.plugin-todo/server/dist/plugin-linux-amd64
             ├─1658 plugins/com.github.matterpoll.matterpoll/server/dist/plugin-linux-amd64
             ├─1677 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
             ├─1684 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
             ├─1695 plugins/com.mattermost.calls/server/dist/plugin-linux-amd64
             ├─1708 plugins/com.mattermost.apps/server/dist/plugin-linux-amd64
             ├─1721 plugins/playbooks/server/dist/plugin-linux-amd64
             └─1736 plugins/focalboard/server/dist/plugin-linux-amd64

Dec 30 19:45:15 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:15.980 -08:00","level":"info","msg":"Initialized notification backend","caller":"app/plugin_api.go:973","plugin_id":"focalboard","name":"notifySubscriptions"}
Dec 30 19:45:15 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:15.980 -08:00","level":"info","msg":"Initialized notification backend","caller":"app/plugin_api.go:973","plugin_id":"focalboard","name":"notifyLogger"}
Dec 30 19:45:15 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:15.991 -08:00","level":"info","msg":"FocalBoard Server","caller":"app/plugin_api.go:973","plugin_id":"focalboard","version":"7.5.4","edition":"plugin","build_number":"3697449214","build_date":"\"Wed Dec 14 18:04:06 UTC 2022\"","build_hash":"414>
Dec 30 19:45:15 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:15.991 -08:00","level":"info","msg":"Server.Start","caller":"app/plugin_api.go:973","plugin_id":"focalboard"}
Dec 30 19:45:16 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:16.004 -08:00","level":"info","msg":"Boards product successfully started.","caller":"app/plugin_api.go:973","plugin_id":"focalboard"}
Dec 30 19:45:17 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:17.217 -08:00","level":"info","msg":"Starting Server...","caller":"app/server.go:913"}
Dec 30 19:45:17 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:17.217 -08:00","level":"info","msg":"Server is listening on [::]:8065","caller":"app/server.go:985","address":"[::]:8065"}
Dec 30 19:45:17 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:17.217 -08:00","level":"info","msg":"Sending systemd READY notification.","caller":"commands/server.go:130"}
Dec 30 19:45:17 ubuntu systemd[1]: Started Mattermost.
Dec 30 19:45:55 ubuntu mattermost[1418]: {"timestamp":"2022-12-30 19:45:55.156 -08:00","level":"info","msg":"Post.Message has size restrictions","caller":"sqlstore/post_store.go:2475","max_characters":16383,"max_bytes":65535}

 

서버를 껏다 켜면서 테스트 해보니 위와 같이 나옵니다. 

리눅스 시스템 서비스를 이용하면, 정말 편합니다. 

감사합니다. 

반응형

+ Recent posts