这似乎是一件非常基本的事情,我什至遵循了一些教程来获得一个在启动时运行的简单脚本,但没有成功。
这是我的脚本(位于根目录中)的样子:
#! /bin/bash
xmodmap ~/.xmodmaprc
echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout
该脚本基本上通过切换控制键和命令键来更改我的键盘映射(就像我在 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/
所以,我已经将 shell 脚本复制到/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