시스템 재부팅 시 Linux 명령 및 스크립트를 자동으로 실행하는 방법

How Run Linux Commands



시작 시 앱과 스크립트를 자동으로 실행하면 일반적인 부팅 작업 및 이벤트를 자동화하는 데 유용할 수 있습니다. 이 문서에서는 새로 재부팅하거나 로그인할 때 앱과 스크립트를 시작하는 데 사용할 수 있는 몇 가지 방법을 설명합니다.

시작 응용 프로그램

Ubuntu 및 기타 GNOME 기반 배포판에는 단순히 Startup Applications라고 하는 응용 프로그램이 함께 제공됩니다. 시스템을 새로 재부팅하거나 로그인할 때 실행되는 앱 및 스크립트를 관리하는 데 사용할 수 있습니다.







응용 프로그램 시작 관리자에서 시작 응용 프로그램 앱을 시작하고 추가 버튼을 클릭하여 새 항목을 추가합니다.





필요에 따라 이름 및 명령 필드를 채운 다음 추가 버튼을 클릭하여 새 항목 만들기를 마칩니다. 아래 스크린샷에서 생성된 항목은 재부팅/로그인할 때마다 시스템 알림으로 백업 만들기 알림을 보냅니다. 자신의 명령이나 bash 스크립트의 전체 경로로 바꿀 수 있습니다. 또한 일반적으로 파일 시스템의 다양한 bin 폴더에 있는 기존 시스템 명령이나 실행 파일을 사용할 수도 있습니다.





위에서 설명한 것처럼 재부팅할 때마다 백업 알림이 표시됩니다.



시스템

Systemd는 시스템 프로세스 및 OS 구성 요소를 관리하기 위한 다양한 유틸리티를 포함하는 데몬 및 서비스 관리자입니다. 단순한 형태로 일반적으로 새로운 부팅 주기에서 서비스를 시작하고 종료하는 데 사용됩니다.

Systemd를 사용하여 앱을 자동으로 시작하거나 새로 부팅할 때 스크립트를 실행할 수 있습니다. 위에서 설명한 것과 동일한 백업 알림 알림을 생성하려면 먼저 아래 명령을 실행하여 필요한 폴더와 파일을 생성해야 합니다.

$mkdir -NS~/.config/체계/사용자
$나노~/.config/체계/사용자/backup_reminder.service

nano를 좋아하는 텍스트 편집기의 명령으로 바꾸십시오. backup_reminder를 원하는 다른 이름으로 바꾸십시오.

위의 명령을 사용하여 생성한 backup_reminder.service 파일에 아래 코드를 붙여넣습니다.

[단위]
Description=재부팅할 때마다 백업 알림을 보냅니다.
PartOf=그래픽 세션.타겟

[서비스]
ExecStart=bash -c '수면 10; notify-send '백업 만들기''
유형=원샷

[설치]
WantedBy=그래픽 세션.타겟

위의 코드는 매우 간단합니다. 그래픽 세션이 로드된 후 10초 후에 백업 만들기 알림을 보냅니다(재부팅 또는 로그인할 때마다 한 번).

재부팅할 때마다 자동으로 실행될 수 있도록 아래 명령을 실행하여 서비스를 활성화합니다.

$chmod 644~/.config/체계/사용자/backup_reminder.service
$ systemctl--사용자 ~ 할 수있게하다backup_reminder.service
$ systemctl--사용자데몬 다시 로드
$ 재부팅

이것은 systemd를 사용하여 부팅 시 기본 명령을 실행하는 간단한 예일 뿐입니다. 여러 조건과 여러 명령으로 고급 서비스를 만들 수도 있습니다. 자세한 내용은 아래 명령을 실행하여 systemd 매뉴얼 페이지를 참조하십시오.

$남성체계

이 예에서는 루트 액세스가 필요하지 않고 루트 권한이 필요하지 않은 앱 자동 시작에 적합한 새 서비스를 만드는 방법을 설명합니다. 루트 액세스가 필요한 스크립트를 자동 시작하려면 ~/.config/systemd/user 폴더 대신 /etc/systemd/system 디렉터리에 새 systemd 서비스를 만들고 위에서 언급한 명령에서 –user 스위치를 생략해야 합니다.

크론 작업

Cron은 사용자가 지정한 조건에 따라 예약된 작업을 주기적으로 실행할 수 있는 도구입니다. 이러한 예약된 작업은 미리 정의된 형식으로 Crontab에서 생성됩니다. 간단히 말해서 Crontab은 Cron에게 어떤 시점에 어떤 작업을 실행할지 알려줍니다.

systemd와 마찬가지로 crontab 작업을 사용하여 부팅 시 앱을 시작하고 스크립트를 자동으로 실행할 수 있습니다. 새 cron 작업을 추가하려면 아래 명령을 실행하십시오.

$크론탭-그리고

텍스트 파일 끝에 다음 줄을 추가합니다(재부팅할 때마다 자동으로 그놈 터미널 시작).

쉘=/bin/bash
@reboot sleep 30 && DISPLAY=:0 그놈 터미널

고유한 명령을 사용하거나 셸 스크립트에 대한 전체 경로를 제공할 수 있습니다.

systemd와 달리 cron은 그래픽 세션이 로드되었는지 여부를 감지할 수 없습니다. X 서버가 로드될 때까지의 예상 대기 시간과 표시 식별자를 지정해야 합니다. 아래 명령을 실행하여 디스플레이 ID에 대해 알 수 있습니다.

$던졌다 $디스플레이

명령 또는 스크립트 실행 전 지연은 시스템 구성 및 부팅 시간에 따라 다릅니다.

Rc.local

시작할 때 스크립트와 명령을 실행하는 또 다른 방법은 rc.local 파일을 사용하는 것입니다. 내 테스트에서 그래픽 세션이 활성화될 때까지 스크립트 실행을 연기할 수 없었습니다. 절전 지연을 추가하면 로그인 화면 자체 표시가 지연됩니다. 이 때문에 rc.local 파일을 사용하여 시작할 때 그래픽 앱을 실행하는 데 성공하지 못했습니다. 위에서 설명한 다른 모든 예와 달리 rc.local을 편집하려면 루트 액세스도 필요합니다.

rc.local 파일에 명령/스크립트를 추가하려면 아래 명령을 실행하십시오(존재하지 않는 경우 새 rc.local 파일 생성):

$수도 나노 //rc.local

# 사이에 명령을 추가하십시오! /bin/bash 아래와 같이 0줄을 종료합니다.

#! /bin/bash
경로/to/my_script.sh
출구 0

아래 명령을 실행하여 rc.local 파일을 실행 가능하게 만드십시오.

$수도 chmod+ x//rc.local

시작 스크립트를 적용하려면 재부팅만 하면 됩니다.

결론

다음은 시작 시 스크립트와 앱을 자동으로 실행하는 데 사용할 수 있는 몇 가지 방법입니다. 루트 액세스가 필요하지 않은 스크립트를 실행하려는 경우 Startup Applications GUI 앱을 사용하는 것이 좋습니다. 루트 액세스로 앱과 스크립트를 실행하려면 시스템 수준 시스템 서비스를 만드는 것이 좋습니다.

저자 소개

니테시 쿠마르

저는 Linux, 오픈 소스 소프트웨어 및 자유 소프트웨어 커뮤니티를 사랑하는 프리랜서 소프트웨어 개발자이자 콘텐츠 작가입니다.

모든 게시물 보기