업데이트 2
현재 가장 좋은 방법은 다음과 같습니다.
GUI 모드 미러링.
문제: 끝까지 시작된 emacs는 터미널 세션에 바인딩되어 제한됩니다.
"좋아, emacs는 끝났어. 이제 bash 명령을 입력하고 싶어"라고 말하면 어떻게 합니까? ? Ctrl+z를 입력하여 emacs를 일시 중지할 수 있습니다. 이로 인해 emacs는 백그라운드로 이동하여 다시 시작할 때까지 중지됩니다. 그러나 여기에 설명된 대로 메이트 터미널과 emacs를 시작하면 그렇지 않습니다! 게다가 이 원치 않는 결과를 방지하기 위해 Ctrl-x Ctrl-c를 사용하여 emacs를 종료하여 대체 경로를 선택하면 emacs가 종료될 뿐만 아니라 메이트 터미널 세션도 종료됩니다! 원하지 않는 #2. 해결책이 있지만 약간 구식입니다. 다음을 수행하는 것보다 더 나은 방법이 있어야 합니다.
Ctrl-alt-t (another mate-terminal-tab opens)
Ctrl-x Ctrl-c (end emacs and in the course of that weirdly also the 1st mate-terminal-tab)
emacs -nw (start emacs again, this time explicitely, manually causing it to be invoked as a "real, usual" session, also capable of responding to stop signals like typing in Ctrl+z)
마지막 두 가지 문제를 해결하는 방법을 알고 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.
업데이트 - 댓글 섹션에 답글 달기 - 나중에 기본 게시물:
저는 GUI에 대한 사용자로서의 의존도를 줄이기 위해 CLI 방식으로 이 작업을 수행하고 싶습니다. 그렇다면 rc.local을 사용하는 방향으로 나아가는 것이 더 낫다고 생각하시나요? 아직 시도하지 않았습니다. crontab 방법이 작동하지 않는 경우를 대비하여 계획 B로 TODO 목록에 추가하세요. 지금까지는 crontab에서 작동한다고 가정합니다. crontab에 내 사용 사례에 대한 전용 요소(예: "@reboot")가 있고 "cronjob 날짜 다시 시작" 테스트 풍선이 작동한다면 왜 안 될까요? ! 그런데 시스템 사용자는 온라인 비디오 "Linux Crash Course - Cron을 사용하여 작업 예약"을 추천하려고 합니까?https://yewtu.be/watch?v=7cbP7fzn0D8.
기본 게시물:
알아요! 이것은 아주 간단해 보이지만 많은 것을 시도해 보았음에도 제대로 작동할 수 없습니다.
"로그인한 사용자에게 이 줄만 추가하면 끝이에요!"라고 생각할 수도 있지만
@reboot mate-terminal
그렇게 간단하지는 않습니다.
내가 뭘 잘못했나요? 퍼즐을 완성할 마지막 조각은 어디에 있나요? 내가 시도하고 발견한 것:
첫 번째 시도: GUI 방식
Trisquel-start-button in the left desktop corner at the bottom >
System >
Preferences >
Personal >
Startup Applications >
Tab 'Startup Programs' >
'add' >
Edit Startup Program
Name: Mate Terminal
Command: mate-terminal --full-screen --hide-menubar
Comment: Terminal >
Save >
Ensuring the activation box next to the new entry is checked
당신은 알고 있나요? 효과가있다. 거의. 별로 좋지 않다:
System starts >
Gui with log-in window appears >
logging-in >
Desktop appears, with mate-terminal being right open >
screen blinks 2, 3 times with white screen >
mate-terminal is not the active window,
it's at the top of the desktop, covers everything by full-screen-mode,
but typing doesn't go into the terminal,
so, first I need to select mate-terminal by Alt+TAB,
making it the active window,
and only then what I'm typing goes into mate-terminal as input
and appears on the screen as output
이 차선책 결과로 인해 먼저 문제를 더 깊이 파고들게 되었습니다!
두 번째 시도: Crontab
다음은 crontab이 예상대로 작동하거나 실제로 얼마나 원활하게 작동하는지 보여주기 위해 중요한 몇 가지 사항을 명확히 하기 위한 나의 많은 시도를 모아 놓은 것입니다.
로그인한 사용자
user@TechnoethicalX200T:~$ whoami
user
sudo 멤버십
user@TechnoethicalX200T:~$ cat /etc/group | grep sudo
sudo:x:27:user,automat
페어링된 단말기의 가용성
user@TechnoethicalX200T:~$ which mate-terminal
/usr/bin/mate-terminal
메이트 터미널 실행 - 작동합니다
user@TechnoethicalX200T:~$ mate-terminal
(> new mate-terminal window popping up)
날짜 가용성 - 비교를 위해 다음을 수행합니다.
user@TechnoethicalX200T:~$ which date
/bin/date
로그인한 사용자 "user"의 crontab
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
# @reboot date >> /tmp/test-file-date-collection
# Before un-commenting:
# - (File not existing)
# After un-commenting: Works!
# user@TechnoethicalX200T:~$ cat /tmp/test-file-date-collection
# Thu 23 Nov 08:54:30 CET 2023
# user@TechnoethicalX200T:~$ who -b
# system boot 2023-11-23 08:54
# Conclusion:
# The logged-in user 'user' is capable of setting up a working reboot cronjob,
# with just specifying command name - not explicitely [full path]/[command name]
# Failed - syslog
# user@TechnoethicalX200T:~$ grep -C5 "mate-terminal" /var/log/syslog
# Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Starting Permit User Sessions...
# Nov 24 18:25:06 TechnoethicalX200T cron[878]: (CRON) INFO (Running @reboot jobs)
# Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Starting LSB: MD monitoring daemon...
# Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Started D-Bus System Message Bus.
# Nov 24 18:25:06 TechnoethicalX200T dbus-daemon[888]: Unknown username "whoopsie" in message bus configuration file
# Nov 24 18:25:06 TechnoethicalX200T CRON[891]: (user) CMD (mate-terminal)
# Nov 24 18:25:06 TechnoethicalX200T dbus[888]: [system] AppArmor D-Bus mediation is enabled
# Nov 24 18:25:06 TechnoethicalX200T avahi-daemon[876]: Successfully called chroot().
# Nov 24 18:25:06 TechnoethicalX200T avahi-daemon[876]: Successfully dropped remaining capabilities.
# Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Started Avahi mDNS/DNS-SD Stack.
# Nov 24 18:25:06 TechnoethicalX200T avahi-daemon[876]: No service file found in /etc/avahi/services.
@reboot mate-terminal
(<<< newline character behind last line - both, of the whole crontab and of each active cronjob in it
That detail turned out to be important for crontab to work properly, and not on all systems that automatically gets added,
I had to input it manually)
간단히 말해서, 이는 테스트 풍선 "cronjob 날짜 다시 시작"이 작동한다는 사실에서도 추론할 수 있습니다. 예, cron.service가 내 시스템에서 활성화되어 활성화되어 있습니다(항상 그렇듯이 현재 실행 중입니다).
또한 시스템 사용자를 생성하고 sudo 권한을 부여한 후 cronjob을 실행하도록 했습니다.
automat:x:1001:1001::/home/automat:/usr/sbin/nologin
정맥에.
user@TechnoethicalX200T:~$ grep -C5 "mate-terminal" /var/log/syslog
Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Starting Permit User Sessions...
Nov 24 18:25:06 TechnoethicalX200T cron[878]: (CRON) INFO (Running @reboot jobs)
Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Starting LSB: MD monitoring daemon...
Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Started D-Bus System Message Bus.
Nov 24 18:25:06 TechnoethicalX200T dbus-daemon[888]: Unknown username "whoopsie" in message bus configuration file
Nov 24 18:25:06 TechnoethicalX200T CRON[891]: (user) CMD (mate-terminal)
Nov 24 18:25:06 TechnoethicalX200T dbus[888]: [system] AppArmor D-Bus mediation is enabled
Nov 24 18:25:06 TechnoethicalX200T avahi-daemon[876]: Successfully called chroot().
Nov 24 18:25:06 TechnoethicalX200T avahi-daemon[876]: Successfully dropped remaining capabilities.
Nov 24 18:25:06 TechnoethicalX200T systemd[1]: Started Avahi mDNS/DNS-SD Stack.
Nov 24 18:25:06 TechnoethicalX200T avahi-daemon[876]: No service file found in /etc/avahi/services.
--
Nov 24 18:38:47 TechnoethicalX200T systemd[1]: Started inputattach for Wacom ISDv4-compatible serial devices.
Nov 24 18:38:47 TechnoethicalX200T systemd[1]: Starting Avahi mDNS/DNS-SD Stack...
Nov 24 18:38:47 TechnoethicalX200T systemd[1]: Starting LSB: daemon to balance interrupts for SMP systems...
Nov 24 18:38:47 TechnoethicalX200T avahi-daemon[899]: Found user 'avahi' (UID 109) and group 'avahi' (GID 118).
Nov 24 18:38:47 TechnoethicalX200T systemd[1]: Starting Login Service...
Nov 24 18:38:47 TechnoethicalX200T CRON[912]: (automat) CMD (mate-terminal)
Nov 24 18:38:47 TechnoethicalX200T systemd[1]: Starting Console System Startup Logging...
Nov 24 18:38:47 TechnoethicalX200T avahi-daemon[899]: Successfully dropped root privileges.
Nov 24 18:38:47 TechnoethicalX200T avahi-daemon[899]: avahi-daemon 0.6.32-rc starting up.
Nov 24 18:38:47 TechnoethicalX200T avahi-daemon[899]: Successfully called chroot().
Nov 24 18:38:47 TechnoethicalX200T systemd[1]: Starting LSB: Start the GNUstep distributed object mapper...
그렇다면 문제는 무엇입니까? 진지하게, 왜 작동하지 않습니까? 재부팅 후 데스크탑만 나타나고 동반 터미널 창이 나타나지 않는 이유는 무엇입니까? 나에게는 이해가 되지 않습니다.