コードは次のとおりです。
#!/usr/bin/bash
echo hello world!
sxhkd -c $HOME/.config/sxhkd/sxhkdrc
echo done sxhkd
setxkbmap -option caps:swapescape
echo done setxkbmap
xset r rate 250 60
echo done xset
私は起動時に実行したいので、crontab @reboot /home/name/startup.shに入れましたが、うまくいかなかったので、スクリプトを直接実行しようとしましたが、hello worldが表示され、何も起こりません。新しいプロンプトはありませんが、ctrl + cを押してプログラムを停止すると、残りは正常に実行されます。どうすれば解決できますか?私はFedoraを着ています。
答え1
sxhkd 行の末尾に「&」を追加してバックグラウンドで実行します。それ以外の場合は、sxhkdを終了するまでその行に閉じ込められます。おそらく欲しくないでしょう。
sxhkd -c $HOME/.config/sxhkd/sxhkdrc &
しかし、cronjobで実行したいのかわかりません。ユーザーとして実行したくありませんか?.xinitrc
ウィンドウマネージャまたはデスクトップ環境で使用されている他の起動スクリプトまたは別の起動スクリプトから起動できますか?