-
webOS OSE :: Booting 시 스크립트 실행하기Development/webOS 2020. 9. 2. 13:02
webOS OSE에서는 init 시스템으로 systemd를 사용하고 있습니다.
한국어판 위키백과에서는 다음과 같이 설명하고 있습니다.
"systemd는 일부 리눅스 배포판에서 유닉스 시스템 V나 BSD init 시스템 대신 사용자 공간을 부트스트래핑하고 최종적으로 모든 프로세스들을 관리하는 init 시스템이다."
영어판 위키백과에서는 다음과 같이 설명하고 있습니다.
" systemd is a software suite that provides an array of system components for Linux operating systems. Its main aim is to unify service configuration and behavior across Linux distributions; systemd's primary component is a "system and service manager"—an init system used to bootstrap user space and manage user processes."
systemd의 위키피디아 설명 : https://en.wikipedia.org/wiki/Systemd
Systemd의 공식 사이트 : https://www.freedesktop.org/wiki/Software/systemd/
systemd는 리눅스 시스템이 부팅할 때 실행되는 프로그램을 제어하기 위한 표준 프로세스를 제공합니다. 그래서 webOS OSE에서도 부팅 시점에 스크립트를 실행하고 싶다면 서비스를 생성하여 사용해야 합니다.
본 글에서는 webOS OSE 부팅 시점에서 Enact Browser를 실행하는 것에 대해서 설명합니다.
Service 파일 생성
"/lib/systemd/system" 디렉토리에 service 파일을 생성합니다.
- 생성할 서비스 이름 : <서비스이름>.service
root@raspberrypi4:/sysroot/home/root# cd /lib/systemd/system root@raspberrypi4:/lib/systemd/system# vi runscript.serivce
아래 내용을 파일에 추가해줍니다.
[Unit] Description=webos - "%n" [Service] Type=oneshot ExecStart=/usr/bin/luna-send -n 1 -f luna://com.webos.service.applicationmanager/launch '{ "id" : "com.webos.app.enactbrowser"}'
Unit Section
- Description 옵션은 서비스에 대한 상세 설명을 추가하는 옵션입니다.
Service Section
- Type 옵션은 서비스의 타입을 설정하는 옵션입니다. 이 옵션의 값으로는 simple | forking | oneshot | notify | dbus 중 하나를 설정할 수 있습니다.
- ExecStart 옵션은 실행할 명령어(스크립트)를 설정하는 옵션입니다.
Service 파일의 Section 및 Option에 대한 설명은 매뉴얼을 참고하세요.
Static Link 생성
홈런처가 실행된 이후에 스크립트가 실행되게 하기 위해서 "/lib/systemd/system" 디렉터리의 webos-bd.target.wants로 Static Link를 생성합니다.
root@raspberrypi4:/lib/systemd/system# ln -s runscript.service ./webos-bd.target.wants/
재부팅
아래 명령으로 재부팅해줍니다.
root@raspberrypi4:/lib/systemd/system# reboot -f
서비스가 실행되었는지 확인하려면 systemdctl 명령으로 확인할 수 있습니다.
root@raspberrypi4:/sysroot/home/root# systemctl status runscript
정상적으로 실행되었다면 아래와 같은 결과를 확인할 수 있습니다.
● runscript.service - webos - "runscript.service" Loaded: loaded (/usr/lib/systemd/system/runscript.service; static; vendor preset: enabled) Active: inactive (dead) since Tue 2020-07-21 18:15:38 PDT; 1 months 12 days ago Process: 809 ExecStart=/usr/bin/luna-send -n 1 -f luna://com.webos.service.applicationmanager/launch { "id" : "com.webos.app.enactbrowser"} (code=exited, status=0/SUCCESS) Main PID: 809 (code=exited, status=0/SUCCESS) Jul 21 18:15:38 raspberrypi4 systemd[1]: Starting webos - "runscript.service"... Jul 21 18:15:38 raspberrypi4 luna-send[809]: { Jul 21 18:15:38 raspberrypi4 luna-send[809]: "launchPointId": "com.webos.app.enactbrowser_default", Jul 21 18:15:38 raspberrypi4 luna-send[809]: "appId": "com.webos.app.enactbrowser", Jul 21 18:15:38 raspberrypi4 luna-send[809]: "returnValue": true, Jul 21 18:15:38 raspberrypi4 luna-send[809]: "displayId": 0, Jul 21 18:15:38 raspberrypi4 luna-send[809]: "instanceId": "1b614df1-a090-45e3-aa90-c046649dbcc70" Jul 21 18:15:38 raspberrypi4 luna-send[809]: } Jul 21 18:15:38 raspberrypi4 systemd[1]: Started webos - "runscript.service".
'Development > webOS' 카테고리의 다른 글
webOS OSE 2.5.0 ~ :: 개발 환경 with 7" 디스플레이(1024x600) (1) 2021.07.28 webOS OSE :: Builtin 앱 삭제하는 방법 (0) 2020.09.03 webOS OSE 2.X :: 블루투스 스피커 또는 이어폰으로 음악듣기 (0) 2020.04.22 webOS TV의 Keycode.. 뭐가 있을까? (0) 2014.12.09 webOS TV SDK의 CLI 명령 (0) 2014.12.08