これは非常に基本的なようで、起動時に成功せずに実行する簡単なスクリプトを取得するためにいくつかのチュートリアルに従いました。
私のスクリプトは次のとおりです(ルートディレクトリにあります)。
#! /bin/bash
xmodmap ~/.xmodmaprc
echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout
このスクリプトはデフォルトでCtrlキーとCommandキーを切り替えて自分のキーマップを変更します(MacBookでやっているように)。chmod
実行可能に編集して実行または実行する./keymap_fix.sh
と、正常に実行されます。/root/keymap_fix.sh
私はこの簡単なチュートリアルに従いました。 https://www.cyberciti.biz/tips/linux-how-to-run-a-command-when-boots-up.htmlそしてhttps://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/
だからシェルスクリプトをコピーして/etc/init.d
実行しました。update-rc.d keymap_fix.sh defaults 100
を追加して同様の方法でcrontabを設定しようとしましたが、@reboot /root/keymap_fix.sh
何も機能しませんでした!再起動するたびに、キーマップは同じままです。 :/
誰でもここで私を助けることができればとても感謝します。ありがとうございます!
答え1
このようなコマンドはxmodmap
Xウィンドウでのみ実行できます。
dot.desktop
xdg autostartフォルダにファイルを作成する必要があります。たとえば、ファイルを生成し、~/.config/autostart/startup.desktop
その中に次の行を入力します。
Exec=~/bin/startup.sh
バラよりこのリンク詳しくは
答え2
この質問は重複しています。kali linux起動時の起動スクリプト
私は次のステップに従ってこの質問に答えました。
sudo vim /etc/systemd/system/rc-local.service
次に、次の内容を追加します。
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
注:16.10以降、Ubuntuは/etc/rc.localファイルに付属していません。 Kaliのような他のディストリビューションでも同様です。このコマンドを実行してファイルを生成できます。
printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
次に、/etc/rc.local ファイルに実行権限を追加します。
sudo chmod +x /etc/rc.local
その後、システムの起動時にサービスを有効にします。
sudo systemctl enable rc-local
最後にサービスを開始し、ステータスを確認します。
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service