![시스템 환경 생성기에서 로그로 인쇄하는 방법은 무엇입니까?](https://linux55.com/image/191778/%EC%8B%9C%EC%8A%A4%ED%85%9C%20%ED%99%98%EA%B2%BD%20%EC%83%9D%EC%84%B1%EA%B8%B0%EC%97%90%EC%84%9C%20%EB%A1%9C%EA%B7%B8%EB%A1%9C%20%EC%9D%B8%EC%87%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
임베디드 시스템을 개발 중입니다. Bash에 환경 생성기를 작성했는데 제대로 작동하는 것 같습니다. 그런데 일지에서 몇 가지 오류를 발견했습니다.
May 28 02:03:14 imx6ull14x14evk systemd[121]: /etc/systemd/system-environment-generators/overlayroot-ubifs.sh failed with exit status 32.
May 28 02:03:14 imx6ull14x14evk systemd[121]: Invalid variable assignment "overlay /mnt/user/overlay overlay rw,noatime,lowerdir=...", ignoring.
May 28 02:03:14 imx6ull14x14evk systemd[121]: Invalid variable assignment "overlay / overlay rw,relatime,lowerdir=...", ignoring.
May 28 02:03:14 imx6ull14x14evk systemd[121]: Invalid variable assignment "devtmpfs /orig/dev devtmpfs rw,relatime,size=...", ignoring.
May 28 02:03:14 imx6ull14x14evk systemd[121]: Invalid variable assignment "tmpfs /orig/run tmpfs rw,nosuid,nodev,mode=...", ignoring.
stdout과 stderr이 모두 억제되는 것 같습니다. 기록계작동하지 않습니다. 아마도 왜냐하면systemd-journald.service아직 시작하지 않았나요? 아니면 어쩌면 그 때문일지도 몰라기록계~에서바쁜 상자그리고 호환되지 않나요? 나는 알아차렸다내로우/요크토기본값은 쓰기입니다.시스템 로그~에서기록계, 시스템 로그 대신.
systemd.log_level=debug를 커널 부팅 매개변수로 설정하면 오류가 (불안하게) 사라집니다. 내가 아는 한, 내 실수는 아무런 해를 끼치지 않았지만, 그것을 정리하고 싶습니다. 환경systemd.log_level=디버그다른 생성기가 기록되도록 합니다.
May 28 02:14:43 imx6ull14x14evk kernel: UBIFS (ubi0:1): FS size: 424099840 bytes (404 MiB, 1670 LEBs), journal size 21331968 bytes (20 MiB, 84 LEBs) mber 2 using ci_hdrck_data_crc mtdparts=gpmi-nand:4m(nandboot),-(nandubi)
3 imx6ull14x14evk kernel: UBIFS (ubi0:1): reserved for root: 4952683 bytes (4836 KiB)
May 28 02:14:43 imx6ull14x14evk kernel: UBIFS (ubi0:1): media format: w5/r0 (latest is w5/r0), UUID 29F89BD4-13AA-4118-B7B7-2B15D8F97EDB, small LPT model
May 28 02:14:43 imx6ull14x14evk systemd-rc-local-generator[196]: /etc/rc.local does not exist, skipping.
May 28 02:14:43 imx6ull14x14evk systemd-hibernate-resume-generator[195]: Not running in an initrd, quitting.
May 28 02:14:43 imx6ull14x14evk systemd-getty-generator[193]: Automatically adding serial getty for /dev/ttymxc0.
May 28 02:14:43 imx6ull14x14evk systemd-gpt-auto-generator[194]: Neither root nor /usr file system are on a (single) block device. vice= 3.18
le entries: 513 imx6ull14x14evk systemd-fstab-generator[192]: Parsing /etc/fstab...
그렇다면 어떨까요?systemd-rc - 로컬 생성기메시지 작성
/etc/rc.local이 존재하지 않습니다. 건너뛰세요.
일기장에? 메시지를 인쇄하려면(원하는 경우) 환경 생성기를 C로 작성해야 합니까? 설정하지 않고도 메시지를 받을 수 있나요?systemd.log_level=디버그?
답변1
현재 로그가 실행되고 있지 않기 때문에 로그에 로그인할 수 없습니다. 사실, 모든 시스템 생성기는 새로운 유닛 파일을 생성할 수 있어야 합니다.말 그대로 어떤systemd 장치가 시작되었습니다.
그러나 로그인은 가능합니다커널 로그 버퍼(즉, dmesg
버퍼) 메시지는 다른 모든 커널 메시지와 함께 로그를 통해 가져옵니다.
이렇게 하려면 /dev/kmsg
선택적으로 커널 스타일 심각도 접두사를 사용하여 메시지를 작성하세요.
echo "foobar-generator[$$]: Something's going on" > /dev/kmsg
echo "<4>foobar-generator[$$]: Warning, an error is about to occur" > /dev/kmsg
echo "<3>foobar-generator[$$]: An error just occured" > /dev/kmsg
<n>
심각도는 syslog와 마찬가지로 " " 접두사를 사용하여 지정할 수 있습니다 . (예를 들어 3은 LOG_ERR, 4는 LOG_WARN, 7은 LOG_DEBUG입니다.) 예, syslog 스타일 "process[pid]:" 태그를 직접 추가해야 합니다.