Linux 19

make[5]: /bin/sh: Argument list too long 에러 해결

"Argument list too long" 오류는 명령줄 인수가 시스템의 제한을 초과할 때 발생한다. 이는 빌드 과정에서 너무 많은 파일이나 옵션이 명령에 전달될 때 자주 발생한다. 이를 해결하는 방법은 여러가지가 있으나 리눅스 시스템에서 인수 제한을 증가시키는 방법을 이야기해본다.리눅스에서는 다음과 같이 /etc/security/limits.conf 제일 하단에  아래 두 줄을 추가한 후 재부팅하여 제한을 증가시킬 수 있다.* hard stack 65536* soft stack 65536

Linux 2024.09.03

systemd logind 서비스 idle 상태에서 꺼짐 방지 (background 서비스)

systemd의 logind 서비스에서 서버의 상태가 idle일 때 poweroff를 하도록 설정하려면 아래와 같이 하면 된다. 파일: /etc/systemd/logind.confIdleAction=poweroffIdleActionSec=30min 이후 아래 명령어로 systemd 서비스를 재시작해주면 반영된다.$ systemctl daemon-reload$ systemctl restart systemd-logind.service 여기서 문제는 idle 상태에 대한 판단은 사용자 인터랙션이기 때문에 background로 빌드가 돌아가고 사용자가 세션을 나가버리면 idle 상태로 인식하고 30분후에 자동으로 꺼진다는 것이다. 이에 대한 해결 방법은 다음과 같이 명령어를 주면 background로 돌아가는..

Linux 2024.08.29

Systemd에서 Idle 상태이면 자동으로 종료하기

회사에서 AWS를 사용하고 있고 개발자들에게 자유롭게 EC2 Instance Type을 선택하고 사용할 수 있도록 제공한다. 자유롭게 사용할 수 있는 만큼 책임이 따르지만 많이들 좋은 Instance Type을 선택하고 빌드가 아닌 작은 작업을 한다던지 심지어 깜빡하고 종료를 안하고 퇴근하기도 한다. 이에 사용하지 않을때 자동으로 종료하는 방법을 찾아서 설정하고 두가지 방안을 동시에 적용하려고 한다. 하나는 이번 글에서 설명할 systemd 설정을 변경하여 30분동안 idle 상태이면 자동으로 종료하도록 하는 것이고, 다른 하나는 AWS의 cloudwatch에서 alert를 설정하여 종료를 하도록 하는 것이다.systemd 환경설정 방법설정방법은 간단하다. /etc/systemd/logind.conf 파..

Linux 2024.06.21

clang toolchain의 위력 (빌드 최적화, build time profiling)

인포테인먼트 제품을 개발하고 있고 Yocto 프로젝트 기반의 임베디드 리눅스를 기반으로 하고 있다. Yocto 버전은 dunfell을 사용하다가 작년에 kirkstone으로 고생해서 마이그레이션을 해서 사용중이다. 컴포넌트 하나가 이전에 4시간 걸렸던 것이 LTO (Link Time Optimization) 옵션을 적용해서 2시간으로 줄었다. 이 컴포넌트는 ARXML 기반으로 프로토콜이 작성되어 있고 이것이 code generator을 통해 헤더와 코드가 생성되고 라이브러리가 생성되는 구조이다. 그렇기에 엄청나게 많은 파일이 linking 단계에서 사용되어 오래걸렸던 것이다. LTO는 빌드 시간이 더 걸릴 수 있다고 봤지만 이 경우에는 엄청나게 단축되었다. 3가지 variant가 있는데 최근 업그레이드 ..

Linux 2024.06.06

[Ubuntu][Error] Problem with MergeList” or “status file could not be parsed” error when trying to do an update?

아래와 같은 에러가 나올 때는, 일단 /var/lib/apt/lists 디렉토리의 내용을 지우고 apt-get update를 해주면 정상동작 된다. Error changhyeok.bae@~/work/yocto/openembedded-core/build $ sudo apt-get install pip Reading package lists... Error! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/kr.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-en%5fUS E: The package lists or status f..

Linux 2023.04.21

The Art of Command Line

The Art of Command Line은 Linux에서 사용하는 Command Line의 기초에 대해 정리해 놓은 프로젝트이다. 각 언어별로 있으니 시간날 때 한번 훓어보면 도움이 될 것 같다. Linux를 시작하는 초보자부터 많이 사용하는 개발자들에게도 정말 유용하다. 한글도 있다 :) Repository: https://github.com/jlevy/the-art-of-command-line GitHub - jlevy/the-art-of-command-line: Master the command line, in one page Master the command line, in one page. Contribute to jlevy/the-art-of-command-line development by..

Linux 2023.04.20

Parallel SSH

Parallel SSH를 이용해 여러 시스템에 ssh 명령을 전달한거나, Parallel SCP, SLURP를 이용해 파일을 주고 받을 수 있다. 잘못하면 전체 시스템을 모두 망가트릴 수 있으니, 가급적이면 시스템 상태를 파악하는 용도로 사용하면 좋을 듯 하다. 전체 시스템을 관리하는 퍼펫(puppet)이라는 도구를 사용하여 시스템을 제어하는 것도 좋을 것 같다. Ubuntu에 pssh를 설치한다. $ sudo pat-get install pssh parallel-ssh 명령어로 uptime이라는 명령어를 여러 시스템에 보낸다. -l 옵션에 사용자 이름을 안주고 IP 앞에 "사용자이름@IP" 를 넣어도 된다. $ parallel-ssh -H "192.168.1.0 192.168.2.0" -l user -..

Linux 2023.04.19

[Ubuntu] E: Encountered a section with no Package: header 에러 발생

Ubuntu 12.04 64bit를 사용하고 있는데, 언제부터인지 apt-get 명령어를 실행하면 다음과 같은 에러가 발생한다. E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/kr.archive...... E: The package lists or status file could not be parsed or opened. 다음과 같이 특정 디렉토리를 삭제한 후, apt-get update를 sudo로 실행하면 해결된다. $ sudo rm /var/lib/apt/lists/* -vf $ sudo apt-get update Reference: http://ubuntuforums.org/..

Linux 2023.04.19

Manage multiple SSH private keys with IdentityFile (여러개의 SSH key 관리)

여러 개의 SSH key를 관리해야 할 필요가 있다. 이 때는 아래를 참고하면 된다. SSH has a per-user configuration file called ‘~/.ssh/config’ that it can use to select your private keys based on the remote user name and remote host by using wildcards. Let’s check out my ‘config’ file: IdentityFile ~/.ssh/ids/%h/%r/id_rsa IdentityFile ~/.ssh/ids/%h/%r/id_dsa IdentityFile ~/.ssh/ids/%h/id_rsa IdentityFile ~/.ssh/ids/%h/id_dsa Ide..

Linux 2023.04.19